/*******************************************************************************
* Copyright (c) 2006, 2015 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
*     IBM Corporation - initial API and implementation
*********************************************************************************/

// This file was generated by LPG

package org.eclipse.cdt.internal.core.dom.lrparser.cpp;

public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym {

    public interface IsKeyword {
        public final static byte isKeyword[] = {0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0
        };
    };
    public final static byte isKeyword[] = IsKeyword.isKeyword;
    public final boolean isKeyword(int index) { return isKeyword[index] != 0; }

    public interface BaseCheck {
        public final static short baseCheck[] = {0,
            0,0,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,3,1,1,1,1,1,1,
            1,1,2,2,1,1,0,1,0,4,
            2,3,2,3,2,2,1,0,1,1,
            4,4,4,8,8,3,3,4,4,3,
            3,2,2,7,7,7,7,4,4,5,
            6,3,2,2,1,1,1,2,2,2,
            2,2,2,2,2,2,4,7,9,3,
            0,1,2,2,1,2,3,4,1,0,
            3,1,0,3,5,1,4,1,3,3,
            1,3,3,3,1,3,3,1,3,3,
            1,3,3,3,3,1,3,3,1,3,
            1,3,1,3,1,3,1,3,1,5,
            1,3,5,3,3,1,3,3,1,3,
            1,3,1,3,1,3,1,3,1,5,
            1,1,3,3,3,3,3,3,3,3,
            3,3,3,1,2,1,1,3,3,3,
            3,3,3,3,3,3,3,3,1,2,
            1,3,1,0,1,0,1,1,0,1,
            1,1,1,1,1,1,1,1,3,4,
            3,2,1,4,2,1,2,5,7,5,
            1,4,1,0,5,7,2,8,1,1,
            2,2,3,2,3,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,2,1,0,4,4,2,2,2,2,
            2,1,0,1,1,1,1,1,1,2,
            1,2,2,2,1,1,2,2,1,2,
            2,1,2,2,1,2,2,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,3,
            4,4,5,2,5,6,5,0,1,0,
            7,8,0,1,3,1,0,1,3,1,
            7,6,0,7,6,1,0,6,5,6,
            4,1,3,1,0,1,1,2,1,1,
            3,1,3,1,1,1,1,3,9,2,
            2,3,2,5,3,7,0,1,2,2,
            1,0,1,1,1,3,1,2,1,1,
            2,3,1,1,1,3,2,1,2,2,
            9,8,2,1,3,1,3,1,0,1,
            0,2,1,1,3,1,3,2,1,5,
            8,1,2,3,1,1,7,6,3,0,
            0,1,3,1,1,5,6,6,7,7,
            0,0,1,0,1,1,1,2,4,2,
            2,1,5,1,1,1,1,1,1,1,
            2,1,0,1,3,1,1,2,3,2,
            1,2,2,1,0,1,3,3,5,5,
            4,1,1,1,1,0,1,5,2,2,
            1,2,2,1,0,1,3,4,3,1,
            1,5,2,1,1,3,3,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,2,2,7,1,0,1,3,
            1,1,2,4,2,4,7,9,5,1,
            3,1,0,1,1,3,2,3,2,2,
            1,0,1,1,4,5,2,1,2,2,
            2,2,2,2,2,1,1,2,1,1,
            2,4,4,2,1,2,5,5,3,3,
            1,4,3,1,0,1,3,-271,0,0,
            0,0,-21,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-72,-63,0,-2,0,0,
            0,0,0,0,-119,0,-4,0,0,-514,
            -25,0,0,0,0,-519,0,0,0,-418,
            0,-6,0,0,0,0,0,0,0,0,
            0,0,0,0,-40,-7,0,0,0,0,
            -145,0,-53,0,0,0,-100,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,-217,0,0,0,0,-71,0,-231,
            0,0,0,0,0,0,0,-9,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,-227,-450,0,0,0,0,0,0,
            0,0,0,0,0,0,-88,0,0,-515,
            0,-3,0,0,-48,0,0,0,0,-116,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,-406,0,0,0,0,0,0,0,0,
            -34,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-19,0,0,0,0,0,
            0,0,0,0,0,0,0,-42,0,0,
            -117,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -257,0,0,0,0,0,0,0,0,0,
            0,0,0,-251,-14,0,0,0,0,-110,
            0,-12,-24,0,0,0,0,0,0,0,
            0,0,0,0,0,0,-30,0,0,0,
            -16,0,0,0,0,0,0,0,0,0,
            -27,0,0,0,0,0,-106,0,0,0,
            0,0,0,-297,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -31,0,0,-92,0,0,0,0,0,0,
            0,-58,-302,0,0,0,0,0,0,0,
            0,0,-32,0,-50,0,0,-13,0,0,
            0,0,0,0,0,0,0,0,0,-438,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,-374,0,0,0,0,0,0,-210,0,
            0,0,0,-35,-79,0,-258,0,0,0,
            0,-228,0,0,0,0,0,0,0,0,
            0,0,0,0,-146,0,0,-532,0,0,
            0,0,-37,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-47,-38,0,0,0,0,
            0,0,0,0,-59,0,0,0,0,0,
            0,0,0,0,-273,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,-18,-39,0,0,0,0,0,0,-111,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,-17,
            0,-470,0,0,0,0,0,0,-60,0,
            0,0,0,-533,-253,0,-358,0,-89,0,
            0,0,0,0,0,0,0,0,0,-43,
            0,0,0,0,0,0,-202,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,-55,-49,0,-56,0,0,0,
            0,0,0,-93,0,-64,0,0,-503,0,
            0,0,0,-304,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,-466,0,0,0,0,0,0,-333,0,
            0,0,0,-41,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,-576,-51,0,-67,0,
            0,0,0,0,0,0,0,0,0,0,
            -102,0,0,0,0,0,0,-442,0,0,
            0,0,-130,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-103,0,0,0,0,0,
            0,0,0,0,-74,0,0,0,0,-535,
            0,0,0,0,-443,0,0,0,0,-223,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,-114,0,-75,0,-52,0,0,0,
            0,0,0,0,0,0,-182,0,0,0,
            0,-46,-298,0,-107,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,-62,-531,0,0,0,0,0,0,
            0,0,0,0,0,0,0,-179,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-186,-352,0,0,0,0,
            0,0,0,0,-76,0,-77,0,0,0,
            0,0,-530,0,-95,-218,0,0,0,0,
            0,-230,0,-284,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,-479,0,-112,0,0,0,0,0,0,
            0,0,0,0,0,0,-15,-33,0,-10,
            0,0,0,0,-105,0,0,0,0,0,
            0,-353,-133,0,0,0,0,0,0,-285,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,-101,0,0,0,0,0,-57,0,
            0,0,-20,0,0,0,0,0,0,0,
            0,-87,0,0,-185,0,0,-135,-94,0,
            0,0,0,0,0,-286,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,-147,0,0,0,0,
            0,-569,0,0,0,0,0,0,-234,-69,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,-551,-115,0,0,0,0,0,
            0,-287,0,0,0,0,-580,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,-29,0,0,0,0,0,0,0,0,
            0,0,0,0,-22,-246,0,0,0,0,
            0,0,0,0,0,-240,0,0,0,0,
            0,0,0,0,0,0,0,-288,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,-229,
            0,0,0,0,0,0,-70,-61,0,0,
            -235,0,0,0,0,0,-150,0,-423,-155,
            0,0,-151,0,0,0,-200,0,0,0,
            0,0,0,-289,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,-524,0,0,0,0,0,0,
            0,0,0,0,0,0,-236,-247,0,0,
            0,0,0,0,0,0,0,0,-136,-152,
            -222,0,0,0,0,0,0,0,0,-290,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,-547,0,0,0,
            -390,0,0,-592,0,0,0,0,-422,0,
            0,0,-113,-248,0,0,0,0,0,0,
            -582,-139,0,0,-454,-153,0,-154,0,0,
            0,0,0,0,0,-291,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,-68,0,0,-601,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,-143,0,0,0,0,0,0,0,
            -301,0,0,0,0,0,0,0,0,0,
            0,-292,0,0,0,0,-73,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,-201,
            0,-376,0,0,0,0,0,0,0,0,
            0,0,0,0,-237,0,0,0,-134,0,
            0,0,-583,-104,0,0,0,0,0,0,
            -86,0,0,0,0,0,0,-293,0,0,
            0,0,-156,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,-378,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -238,-80,0,0,0,0,0,0,0,-167,
            0,-465,0,0,0,-330,-97,0,0,0,
            0,0,0,-294,0,0,0,0,-168,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -350,0,0,-121,0,0,0,0,0,0,
            0,0,0,0,0,0,0,-373,0,0,
            0,0,0,0,0,-169,0,-170,0,-504,
            0,0,0,0,0,0,0,0,0,-319,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,-120,0,0,
            0,-172,0,0,0,0,0,0,-190,0,
            0,-570,0,0,0,0,-320,0,0,0,
            0,-173,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-174,0,-175,0,-81,0,
            0,0,0,0,0,-176,0,0,-571,0,
            0,0,0,-321,0,0,0,0,-219,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,-372,0,-84,0,0,0,0,
            0,0,0,0,0,-517,0,0,0,0,
            -322,0,0,0,0,-220,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,-602,0,0,
            0,0,-85,0,0,0,0,0,0,0,
            0,0,-518,0,0,0,0,-323,0,0,
            0,0,-317,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-98,-380,0,0,0,0,
            0,0,0,0,-177,0,0,0,0,-520,
            0,0,0,0,-324,0,0,0,0,-565,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,-126,-579,0,-596,0,0,0,0,0,
            0,-178,0,0,0,0,-554,0,0,0,
            0,-325,0,0,0,0,-90,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,-141,0,
            0,0,0,0,0,0,0,0,-142,0,
            0,0,0,0,-344,0,-128,0,-326,0,
            0,0,0,-129,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,-144,0,0,0,0,
            0,0,0,0,0,0,0,-180,0,0,
            0,-356,0,-132,0,-327,0,0,0,0,
            -181,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,-203,-183,0,0,0,0,0,0,
            0,0,0,0,-207,0,0,-204,-187,0,
            -140,0,-328,0,0,0,0,-457,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,-225,
            -594,0,0,0,0,0,0,0,0,0,
            0,-226,0,0,-189,-192,0,-193,0,-329,
            0,0,0,0,-495,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,-455,-331,0,-355,
            0,-299,0,0,0,0,0,0,0,0,
            0,-54,0,0,0,0,-437,0,0,0,
            0,-194,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,-254,0,0,0,
            0,0,0,-318,0,0,0,0,0,-458,
            0,0,0,-478,0,0,0,0,-211,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -268,-243,0,-346,0,0,0,-370,0,0,
            0,0,0,0,0,0,-474,-195,0,0,
            -332,0,0,0,-341,0,0,0,-345,0,
            0,0,-347,0,0,0,0,0,0,-494,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,-196,0,0,-197,
            0,0,0,0,0,0,0,0,-198,0,
            0,0,0,-244,-269,0,-585,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,-363,0,0,0,0,0,0,
            0,0,0,-411,0,-501,0,0,-476,0,
            -361,-420,0,-348,0,0,0,0,-199,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,-421,0,0,0,0,
            0,0,-364,0,0,-357,0,0,0,0,
            -449,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,-205,0,-439,0,0,
            0,0,0,0,-502,0,0,-469,0,0,
            -490,-149,0,-491,-206,-208,0,-209,-184,0,
            0,0,-409,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,-212,0,0,-493,0,0,0,0,0,
            0,0,0,0,-451,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,-118,-566,-214,0,0,0,0,0,
            0,-497,0,-505,0,0,0,-440,0,-527,
            0,0,0,0,0,-215,-78,0,0,0,
            0,-452,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,-216,
            -232,0,0,-561,0,0,0,0,0,0,
            0,0,0,-578,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,-365,0,-371,0,-539,0,0,0,0,
            0,0,-241,0,0,-546,0,-557,-233,-256,
            0,-572,0,-441,0,0,0,-272,-588,-593,
            -599,0,0,0,0,0,-171,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,-316,-550,0,-334,0,
            0,0,-335,0,0,-342,-343,0,-349,0,
            0,0,-351,-296,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,-338,0,-259,-366,-337,0,-367,0,0,
            -368,-369,-381,-382,-123,0,-383,-384,0,0,
            0,0,-270,0,0,-385,0,0,0,-387,
            -388,0,-389,0,0,0,-315,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,-393,0,-394,-395,0,-396,0,
            0,0,0,0,0,-283,0,0,0,0,
            -397,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,-398,-446,-399,0,-400,
            -499,0,-375,-401,0,-496,0,0,-402,-403,
            0,0,0,0,0,0,-404,-405,0,-408,
            -410,0,-412,0,-413,0,0,-312,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,-414,0,-415,
            0,0,0,0,-281,0,0,0,0,-417,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,-425,-426,-427,-428,-429,-430,-431,0,
            -432,-433,-434,-435,-436,-453,-461,-462,-463,0,
            -464,-480,0,0,0,0,-481,0,-379,-313,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,-483,
            0,-488,0,0,0,-282,0,0,0,0,
            -424,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-459,-492,-498,-511,-512,-516,
            0,-528,-534,-548,-552,-553,-559,-567,-568,-581,
            0,-586,-591,0,0,0,-471,-477,0,-310,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-278,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,-28,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -109,0,0,0,0,-311,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,-303,0,0,
            0,0,0,0,0,-506,-513,-523,-525,0,
            0,0,0,0,0,0,0,0,0,0,
            -65,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -279,0,0,0,0,-529,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -540,-541,-339,-542,-543,0,-555,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,-280,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-213,0,0,0,0,0,
            0,0,0,0,0,0,0,-305,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,-224,
            0,0,0,0,0,0,0,0,0,0,
            0,0,-137,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,-556,
            -574,0,0,0,0,0,-26,0,0,0,
            0,0,0,0,0,-575,0,0,-589,0,
            0,0,-595,0,0,0,0,-598,0,0,
            0,-122,0,0,-600,-544,0,0,0,-460,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,-274,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,-275,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,-419,-260,0,
            -295,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -306,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,-307,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-308,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,-309,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,-336,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,-360,0,0,0,0,
            0,0,0,-392,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -5,0,0,0,0,0,-314,-507,0,-538,
            -521,0,0,0,0,0,0,0,-508,0,
            0,0,0,0,0,0,0,0,0,0,
            0,-587,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,-276,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,-108,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,-573,0,0,0,0,0,0,-277,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,-300,0,0,0,
            -362,0,0,0,0,0,0,0,0,-242,
            0,0,-509,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,-36,
            0,0,0,0,0,0,0,-510,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,-407,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,-131,0,0,0,0,0,0,0,-549,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,-584,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -263,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,-264,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,-563,0,0,
            0,0,0,-416,0,0,0,0,0,0,
            -485,-44,0,0,0,0,-545,0,-354,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-445,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,-265,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -482,0,0,0,0,0,0,0,-45,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,-249,0,0,0,
            0,0,0,-487,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,-484,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,-66,0,0,0,-96,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-522,0,0,0,0,0,
            0,0,-526,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,-99,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,-558,0,0,0,
            0,0,0,0,0,-444,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,-127,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,-560,0,
            0,0,0,0,0,-577,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -148,0,0,0,0,0,0,0,0,-188,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,-562,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -564,0,0,0,0,0,-473,0,0,0,
            0,0,0,0,0,0,0,0,0,-157,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,-377,0,0,0,0,
            0,0,0,0,0,0,0,0,0,-250,
            0,0,0,0,0,0,0,0,-597,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -603,0,0,0,0,0,0,0,-391,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,-359,
            0,0,0,-472,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,-266,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,-267,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,-159,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -160,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,-161,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,-162,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,-163,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,-164,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,-165,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,-166,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,-252,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-261,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,-262,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -386,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,-467,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,-1,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-456,0,0,0,-158,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,-124,-447,0,0,0,0,0,0,
            0,0,-448,-468,-125,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-500,0,0,0,0,0,
            0,0,-475,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -221,0,0,0,0,0,0,0,0,0,
            0,0,-604,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,-23,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,-8,-536,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,-537,0,0,0,0,0,0,
            0,0,-191,0,0,0,0,0,0,0,
            0,0,0,0,0,-11,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,-82,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,-245,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,-83,0,0,
            0,0,0,0,0,0,0,0,0,-340,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,-239,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,-91,0,0,0,0,
            0,0,0,0,0,-590,0,0,0,0,
            0,-138,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,-255,0,
            0,0,0,0,0,0,-486,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,-489,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0
        };
    };
    public final static short baseCheck[] = BaseCheck.baseCheck;
    @Override
    public final int baseCheck(int index) { return baseCheck[index]; }
    public final static short rhs[] = baseCheck;
    @Override
    public final int rhs(int index) { return rhs[index]; };

    public interface BaseAction {
        public final static char baseAction[] = {
            191,5,154,94,94,30,30,81,81,39,
            39,42,42,191,1,1,16,16,16,16,
            16,16,16,17,17,17,15,11,11,6,
            6,6,6,6,6,2,75,75,4,4,
            12,12,44,44,155,155,156,67,67,43,
            18,18,18,18,18,18,18,18,18,18,
            18,18,18,18,18,18,18,18,18,18,
            157,157,157,132,132,19,19,19,19,19,
            19,19,19,19,19,19,19,19,20,20,
            192,192,193,193,194,160,160,161,161,158,
            158,162,159,159,21,21,22,22,23,23,
            23,24,24,24,24,25,25,25,26,26,
            26,31,31,31,31,31,33,33,33,34,
            34,35,35,36,36,38,38,40,40,41,
            41,45,45,45,45,45,50,50,50,53,
            53,60,60,61,61,62,62,63,63,64,
            64,65,65,65,65,65,65,65,65,65,
            65,65,65,65,29,29,46,46,46,46,
            46,46,46,46,46,46,46,46,46,37,
            28,163,163,105,105,195,195,104,218,218,
            82,82,82,82,82,82,82,82,82,83,
            83,83,79,79,66,66,196,196,84,84,
            84,117,117,197,197,85,85,85,85,198,
            198,86,86,86,86,86,87,87,95,95,
            95,95,95,95,95,95,54,54,54,54,
            54,118,118,116,116,55,199,27,27,27,
            27,27,49,49,69,69,69,69,69,137,
            137,133,133,133,133,133,134,134,134,135,
            135,135,136,136,136,165,165,165,70,70,
            70,70,70,71,71,71,13,14,14,14,
            14,14,14,14,14,14,14,14,106,138,
            138,138,138,138,138,111,111,111,166,167,
            167,112,112,200,169,169,168,168,139,139,
            119,91,91,140,57,48,170,170,58,56,
            97,97,171,171,164,164,141,142,142,143,
            93,93,172,172,77,77,77,73,73,72,
            78,78,80,80,68,68,68,59,98,98,
            108,107,107,51,51,74,74,76,76,52,
            109,109,109,99,99,99,100,100,101,101,
            101,102,102,120,120,120,122,122,121,121,
            219,219,103,103,202,202,202,202,202,145,
            47,47,174,201,201,146,146,147,147,147,
            148,176,203,203,32,32,110,114,114,114,
            114,205,124,123,123,113,113,113,177,178,
            178,178,178,178,178,178,178,178,178,178,
            207,207,204,204,206,206,179,180,180,180,
            180,181,208,126,125,125,209,209,182,182,
            182,182,115,115,115,210,210,8,8,9,
            211,211,212,183,173,173,184,184,185,186,
            186,7,7,10,213,213,213,213,213,213,
            213,213,213,213,213,213,213,213,213,213,
            213,213,213,213,213,213,213,213,213,213,
            213,213,213,213,213,213,213,213,213,213,
            213,213,213,213,213,213,89,92,92,187,
            187,150,150,151,151,151,151,151,151,3,
            152,152,149,149,188,220,221,221,222,222,
            223,224,224,189,190,190,190,190,214,214,
            214,128,128,128,128,128,129,130,130,127,
            127,96,90,88,88,175,175,131,131,215,
            215,215,153,153,144,144,216,216,1119,35,
            3403,3401,5379,1214,27,30,31,983,961,26,
            28,3400,296,25,23,50,2190,106,76,77,
            108,2209,2258,2256,2736,1231,587,177,1008,2792,
            308,2738,2927,2878,2939,1231,2930,55,3066,176,
            3135,1331,35,314,191,673,3230,35,312,266,
            243,3081,1244,35,1044,32,4550,3752,27,30,
            31,983,961,375,28,2396,1513,269,264,265,
            6168,845,3221,243,35,893,425,2409,35,1044,
            32,5230,5171,27,30,31,983,961,26,28,
            2143,296,25,23,50,2190,106,76,77,108,
            2209,2258,2256,2322,309,49,162,2396,276,279,
            282,825,1180,501,35,433,1247,1643,1372,535,
            2544,2547,2302,3163,352,1073,357,2347,1564,497,
            2345,1587,911,1142,1653,5992,285,2495,2356,2542,
            2638,161,579,2149,2244,35,3343,32,4550,1473,
            27,30,31,983,961,375,28,243,35,330,
            1475,3326,2243,1785,3771,501,35,1535,1669,1327,
            2409,35,1044,32,5230,5171,27,30,31,983,
            961,26,28,2143,296,25,23,50,2190,106,
            76,77,108,2209,2258,2256,2322,49,1967,162,
            1292,3674,2608,985,550,576,3082,580,1247,964,
            324,243,1527,1525,34,2302,355,1848,357,1329,
            2347,350,1189,2345,921,2144,1706,348,3327,2651,
            2495,2356,2542,2638,161,579,3336,2231,69,720,
            3279,2409,35,1044,32,5230,5171,27,30,31,
            983,961,26,28,2143,296,25,23,50,2190,
            106,76,77,108,2209,2258,2256,2322,427,464,
            162,1579,35,1044,32,5286,2597,27,30,31,
            983,961,57,28,2433,1588,2302,2642,1254,1217,
            155,2347,62,1178,2345,1217,4752,550,576,3082,
            580,2495,2356,2542,2638,161,579,2120,35,1044,
            32,1467,193,41,30,31,983,961,2100,3086,
            94,332,2651,455,456,3339,972,1331,35,490,
            480,5180,988,585,2689,35,1044,32,5230,5171,
            27,30,31,983,961,26,28,2143,296,25,
            23,50,2190,106,76,77,108,2209,2258,2256,
            2322,1685,266,162,243,35,2691,1992,550,576,
            3082,580,1582,243,35,893,425,1572,2131,2302,
            278,264,265,1793,2347,2379,2197,2345,62,3264,
            3088,1245,4869,2651,2495,2356,2542,2638,161,579,
            2757,35,1044,32,5230,489,27,30,31,983,
            961,26,28,2143,296,25,23,50,2190,106,
            76,77,108,2209,2258,2256,2736,2485,61,177,
            765,2792,155,2738,2927,2878,2939,1217,2930,1733,
            3066,176,2673,3771,2660,2573,415,1627,35,1044,
            32,5286,2149,27,30,31,983,961,56,28,
            3687,551,576,3082,580,243,35,317,2477,35,
            1044,32,5230,141,27,30,31,983,961,26,
            28,2143,296,25,23,50,2190,106,76,77,
            108,2209,2258,2256,2736,155,2789,177,1329,2792,
            6246,2738,2927,2878,2939,1371,2930,369,3066,176,
            2673,483,2689,2735,415,3325,35,1044,32,5230,
            2234,27,30,31,983,961,26,28,2143,296,
            25,23,50,2190,106,76,77,108,2209,2258,
            2256,3434,1951,1344,255,1595,422,416,2688,3164,
            2551,35,1044,32,5230,484,27,30,31,983,
            961,26,28,2143,296,25,23,50,2190,106,
            76,77,108,2209,2258,2256,2736,428,464,177,
            1515,2792,1941,2738,2927,2878,2939,760,2930,1563,
            3066,176,2673,266,3138,743,415,243,3221,2202,
            35,1044,32,2745,60,2604,30,31,983,961,
            418,281,264,265,423,416,2688,3019,35,1044,
            32,5230,1095,27,30,31,983,961,26,28,
            2143,296,25,23,50,2190,106,76,77,108,
            2209,2258,2256,2736,1516,62,177,148,2792,4956,
            2738,2927,2878,2939,413,2930,1985,3066,176,243,
            35,893,425,191,3325,35,1044,32,5230,360,
            27,30,31,983,961,26,28,2143,296,25,
            23,50,2190,106,76,77,108,2209,2258,2256,
            2736,468,243,35,3669,3573,413,416,2688,3019,
            35,1044,32,5230,1515,27,30,31,983,961,
            26,28,2143,296,25,23,50,2190,106,76,
            77,108,2209,2258,2256,2736,3135,62,177,668,
            2792,5014,2738,2927,2878,2939,325,2930,359,3066,
            176,243,35,1525,311,409,2443,594,3019,35,
            1044,32,5230,2218,27,30,31,983,961,26,
            28,2143,296,25,23,50,2190,106,76,77,
            108,2209,2258,2256,2736,2836,93,177,2579,2792,
            3326,2738,2927,2878,2939,1577,2930,2248,3066,176,
            243,35,893,425,409,3019,35,1044,32,5230,
            2074,27,30,31,983,961,26,28,2143,296,
            25,23,50,2190,106,76,77,108,2209,2258,
            2256,2736,471,499,177,1964,2792,155,2738,2927,
            2878,2939,677,2930,426,3066,176,243,35,1525,
            313,409,1862,2920,408,2897,35,1044,32,5230,
            3089,27,30,31,983,961,26,28,2143,296,
            25,23,50,2190,106,76,77,108,2209,2258,
            2256,2736,2557,1475,571,2864,2792,3771,2738,2927,
            2878,2939,365,2930,2721,2999,197,3674,2621,35,
            1044,32,5230,407,27,30,31,983,961,26,
            28,2143,296,25,23,50,2190,106,76,77,
            108,2209,2258,2256,2736,2536,2149,177,3089,2792,
            4517,2738,2927,2878,2939,2841,2930,1449,3066,176,
            42,2674,1329,2608,175,1571,501,35,433,363,
            405,368,845,3221,3142,35,1044,32,5230,2309,
            27,30,31,983,961,26,28,2143,296,25,
            23,50,2190,106,76,77,108,2209,2258,2256,
            2322,4469,2719,162,1361,35,1044,32,4550,1473,
            27,30,31,983,961,375,28,1258,2779,2302,
            71,1210,330,4351,2347,1515,215,2345,44,2674,
            273,296,2149,2142,2495,2356,2542,2638,161,173,
            3142,35,1044,32,5230,379,27,30,31,983,
            961,26,28,2143,296,25,23,50,2190,106,
            76,77,108,2209,2258,2256,2322,1515,266,162,
            718,430,464,2605,35,312,355,1848,357,155,
            418,350,1189,2040,2124,2302,274,264,265,3337,
            2347,412,62,2345,585,1515,5076,349,2936,230,
            2495,2356,2542,2638,161,172,3142,35,1044,32,
            5230,324,27,30,31,983,961,26,28,2143,
            296,25,23,50,2190,106,76,77,108,2209,
            2258,2256,2322,586,266,162,2049,1515,2510,838,
            2770,3279,501,35,433,343,346,626,1437,1375,
            155,2302,284,264,265,770,2347,429,464,2345,
            1304,412,273,296,2821,499,2495,2356,2542,2638,
            161,171,3142,35,1044,32,5230,2821,27,30,
            31,983,961,26,28,2143,296,25,23,50,
            2190,106,76,77,108,2209,2258,2256,2322,410,
            266,162,1361,35,1044,32,4550,1473,27,30,
            31,983,961,375,28,2129,155,2302,274,264,
            265,4351,2347,2589,2685,2345,1331,35,567,479,
            5400,493,2495,2356,2542,2638,161,170,3142,35,
            1044,32,5230,379,27,30,31,983,961,26,
            28,2143,296,25,23,50,2190,106,76,77,
            108,2209,2258,2256,2322,3683,266,162,3393,2772,
            243,35,1525,316,355,1848,357,155,1173,350,
            1189,2298,841,2302,287,264,265,238,2347,1515,
            62,2345,3375,3049,5300,2034,70,499,2495,2356,
            2542,2638,161,169,3142,35,1044,32,5230,71,
            27,30,31,983,961,26,28,2143,296,25,
            23,50,2190,106,76,77,108,2209,2258,2256,
            2322,1515,266,162,1361,35,1044,32,4550,1473,
            27,30,31,983,961,375,28,2828,155,2302,
            278,264,265,4351,2347,3125,3085,2345,361,664,
            3111,243,35,330,2495,2356,2542,2638,161,168,
            3142,35,1044,32,5230,379,27,30,31,983,
            961,26,28,2143,296,25,23,50,2190,106,
            76,77,108,2209,2258,2256,2322,3136,266,162,
            3393,1597,35,314,3138,5913,355,1848,357,243,
            3666,350,1189,2533,155,2302,281,264,265,4351,
            2347,1515,413,2345,3378,1848,3112,3677,3181,5905,
            2495,2356,2542,2638,161,167,3142,35,1044,32,
            5230,379,27,30,31,983,961,26,28,2143,
            296,25,23,50,2190,106,76,77,108,2209,
            2258,2256,2322,1515,1862,162,3393,2111,35,1044,
            32,5404,3085,27,30,31,983,961,26,28,
            2889,2302,548,2605,35,315,2347,588,2234,2345,
            3381,1331,35,490,358,5180,2495,2356,2542,2638,
            161,166,3142,35,1044,32,5230,1862,27,30,
            31,983,961,26,28,2143,296,25,23,50,
            2190,106,76,77,108,2209,2258,2256,2322,988,
            1862,162,1855,35,1044,32,5404,534,27,30,
            31,983,961,59,28,3748,2720,2302,392,71,
            35,330,2347,1515,1582,2345,88,594,1840,102,
            414,1515,2495,2356,2542,2638,161,165,3142,35,
            1044,32,5230,313,27,30,31,983,961,26,
            28,2143,296,25,23,50,2190,106,76,77,
            108,2209,2258,2256,2322,1515,266,162,1855,35,
            1044,32,5404,2532,27,30,31,983,961,58,
            28,3855,155,2302,284,264,265,4052,2347,587,
            3286,2345,243,35,1525,3668,499,1515,2495,2356,
            2542,2638,161,164,3142,35,1044,32,5230,1158,
            27,30,31,983,961,26,28,2143,296,25,
            23,50,2190,106,76,77,108,2209,2258,2256,
            2322,2648,266,162,2202,35,1044,32,838,2626,
            40,30,31,983,961,487,2689,2735,840,2302,
            570,264,265,4351,2347,3068,1220,2345,1939,1304,
            243,35,1525,566,2495,2356,2542,2638,161,163,
            3019,35,1044,32,5230,379,27,30,31,983,
            961,26,28,2143,296,25,23,50,2190,106,
            76,77,108,2209,2258,2256,2736,1665,1231,177,
            1182,2792,2418,2738,2927,2878,2939,484,2930,1231,
            3066,176,243,35,893,425,188,3019,35,1044,
            32,5230,931,27,30,31,983,961,26,28,
            2143,296,25,23,50,2190,106,76,77,108,
            2209,2258,2256,2736,470,320,177,496,2792,155,
            2738,2927,2878,2939,3385,2930,1512,3066,176,243,
            35,893,425,187,3019,35,1044,32,5230,2218,
            27,30,31,983,961,26,28,2143,296,25,
            23,50,2190,106,76,77,108,2209,2258,2256,
            2736,469,496,177,1231,2792,155,2738,2927,2878,
            2939,5873,2930,362,3066,176,243,3675,1525,74,
            186,3019,35,1044,32,5230,2218,27,30,31,
            983,961,26,28,2143,296,25,23,50,2190,
            106,76,77,108,2209,2258,2256,2736,3138,458,
            177,3078,2792,155,2738,2927,2878,2939,5885,2930,
            340,3066,176,1741,35,1525,3676,185,3019,35,
            1044,32,5230,2218,27,30,31,983,961,26,
            28,2143,296,25,23,50,2190,106,76,77,
            108,2209,2258,2256,2736,155,1231,177,5784,2792,
            671,2738,2927,2878,2939,410,2930,332,3066,176,
            1741,35,1525,311,184,3019,35,1044,32,5230,
            3244,27,30,31,983,961,26,28,2143,296,
            25,23,50,2190,106,76,77,108,2209,2258,
            2256,2736,155,1231,177,1231,2792,5961,2738,2927,
            2878,2939,836,2930,419,3066,176,243,35,1525,
            3680,183,3019,35,1044,32,5230,1371,27,30,
            31,983,961,26,28,2143,296,25,23,50,
            2190,106,76,77,108,2209,2258,2256,2736,155,
            51,177,391,2792,743,2738,2927,2878,2939,155,
            2930,594,3066,176,1052,2218,339,1371,182,3019,
            35,1044,32,5230,1371,27,30,31,983,961,
            26,28,2143,296,25,23,50,2190,106,76,
            77,108,2209,2258,2256,2736,155,97,177,98,
            2792,1542,2738,2927,2878,2939,338,2930,1776,3066,
            176,586,2218,335,2431,181,3019,35,1044,32,
            5230,2075,27,30,31,983,961,26,28,2143,
            296,25,23,50,2190,106,76,77,108,2209,
            2258,2256,2736,155,574,177,331,2792,2463,2738,
            2927,2878,2939,441,2930,155,3066,176,1515,2398,
            2768,2938,180,3019,35,1044,32,5230,2218,27,
            30,31,983,961,26,28,2143,296,25,23,
            50,2190,106,76,77,108,2209,2258,2256,2736,
            155,3136,177,321,2792,1516,2738,2927,2878,2939,
            2824,2930,155,3066,176,399,933,1602,1012,179,
            3019,35,1044,32,5230,1450,27,30,31,983,
            961,26,28,2143,296,25,23,50,2190,106,
            76,77,108,2209,2258,2256,2736,2464,1936,177,
            2544,2792,155,2738,2927,2878,2939,802,2930,322,
            3066,176,243,35,893,425,178,3019,35,1044,
            32,5230,1292,27,30,31,983,961,26,28,
            2143,296,25,23,50,2190,106,76,77,108,
            2209,2258,2256,2736,308,2732,177,2074,2792,3178,
            2738,2927,2878,2939,155,2930,1474,3066,176,1000,
            2926,35,565,192,3203,35,1044,32,5230,1862,
            27,30,31,983,961,26,28,2143,296,25,
            23,50,2190,106,76,77,108,2209,2258,2256,
            2322,1862,2378,162,2202,35,1044,32,2923,2881,
            3041,30,31,983,961,364,371,1965,582,2302,
            89,155,475,102,2347,155,3284,2345,310,1371,
            3477,5761,2234,2509,2495,2356,2542,2638,161,160,
            3019,35,1044,32,5230,2260,27,30,31,983,
            961,26,28,2143,296,25,23,50,2190,106,
            76,77,108,2209,2258,2256,2736,485,334,177,
            1241,2792,439,2738,2927,2878,2939,2698,2930,1933,
            3066,176,389,2192,2614,1862,140,3264,35,1044,
            32,5230,2234,27,30,31,983,961,26,28,
            2143,296,25,23,50,2190,106,76,77,108,
            2209,2258,2256,2736,155,24,177,3075,2792,4060,
            2738,2927,2878,2939,1371,2930,62,3066,176,3172,
            6028,1862,1371,222,3325,35,1044,32,5230,1648,
            27,30,31,983,961,26,28,2143,296,25,
            23,50,2190,106,76,77,108,2209,2258,2256,
            2736,386,1292,212,390,2792,1371,2738,2927,2878,
            2939,232,2930,1862,2999,197,3325,35,1044,32,
            5230,1371,27,30,31,983,961,26,28,2143,
            296,25,23,50,2190,106,76,77,108,2209,
            2258,2256,2736,69,2234,231,2130,2792,155,2738,
            2927,2878,2939,3486,2930,62,2999,197,155,6064,
            443,1371,2438,640,1371,757,2251,3273,2437,243,
            35,893,425,3325,35,1044,32,5230,460,27,
            30,31,983,961,26,28,2143,296,25,23,
            50,2190,106,76,77,108,2209,2258,2256,2736,
            235,49,227,233,2792,2862,2738,2927,2878,2939,
            1533,2930,46,2999,197,3325,35,1044,32,5230,
            329,27,30,31,983,961,26,28,2143,296,
            25,23,50,2190,106,76,77,108,2209,2258,
            2256,2736,388,1475,571,2516,2792,3771,2738,2927,
            2878,2939,155,2930,155,2999,197,1194,1936,4360,
            155,380,2944,2862,385,5198,1383,243,35,893,
            425,578,3325,35,1044,32,5230,3630,27,30,
            31,983,961,26,28,2143,296,25,23,50,
            2190,106,76,77,108,2209,2258,2256,2736,308,
            3234,848,1329,2792,1371,2738,2927,2878,2939,3178,
            2930,368,2999,197,3487,35,1044,32,5230,459,
            27,30,31,983,961,26,28,2143,296,25,
            23,50,2190,106,76,77,108,2209,2258,2256,
            2736,1039,1862,4382,1862,2792,155,2738,2927,2878,
            2939,4483,2930,1475,2999,197,155,3771,2645,2583,
            1569,1326,155,4668,1936,370,371,1974,2919,1371,
            155,1371,68,376,53,2438,462,2951,35,1044,
            32,5230,598,27,30,31,983,961,26,28,
            2143,296,25,23,50,2190,106,76,77,108,
            2209,2258,2256,2322,379,189,2616,2030,256,934,
            226,3771,1329,2576,2945,3178,2610,2615,2535,2219,
            417,368,3288,2676,3433,35,1044,32,5230,3393,
            27,30,31,983,961,26,28,2143,296,25,
            23,50,2190,106,76,77,108,2209,2258,2256,
            2322,4316,829,2861,2433,2647,1475,4351,2650,1217,
            3771,2716,2746,2206,2209,3048,1329,1935,2293,2302,
            4351,3172,371,3041,2347,3327,2299,2345,3273,3945,
            1087,3792,193,3730,2495,2356,3498,3325,35,1044,
            32,5230,3945,27,30,31,983,961,26,28,
            2143,296,25,23,50,2190,106,76,77,108,
            2209,2258,2256,2736,1937,1329,2300,2532,2792,2307,
            2738,2927,2878,2939,368,3585,3379,35,1044,32,
            5230,2547,27,30,31,983,961,26,28,2143,
            296,25,23,50,2190,106,76,77,108,2209,
            2258,2256,2322,388,4805,397,1860,3293,2450,3599,
            2698,1854,4351,1862,660,5825,1936,96,542,915,
            2297,2302,380,2944,2862,385,2347,2751,2649,2345,
            2753,2754,378,87,3945,1098,2495,3490,3325,35,
            1044,32,5230,87,27,30,31,983,961,26,
            28,2143,296,25,23,50,2190,106,76,77,
            108,2209,2258,2256,2736,539,541,3178,1103,2792,
            2292,2738,2927,2878,3582,3379,35,1044,32,5230,
            2468,27,30,31,983,961,26,28,2143,296,
            25,23,50,2190,106,76,77,108,2209,2258,
            2256,2322,3186,3110,3171,2592,2744,2748,2790,1351,
            542,1949,2979,1853,2796,2722,2780,2839,3013,3042,
            2302,3043,3073,366,371,2347,1995,173,2345,1862,
            3325,35,1044,32,5230,3484,27,30,31,983,
            961,26,28,2143,296,25,23,50,2190,106,
            76,77,108,2209,2258,2256,2736,539,541,52,
            2976,2792,3108,2738,2927,3583,3379,35,1044,32,
            5230,1862,27,30,31,983,961,26,28,2143,
            296,25,23,50,2190,106,76,77,108,2209,
            2258,2256,2322,467,3667,1862,2728,2147,3075,3104,
            3007,488,3134,3201,3151,3294,3258,2981,2677,3167,
            3292,2302,2216,2982,6914,6914,2347,1862,2217,3489,
            3325,35,1044,32,5230,3174,27,30,31,983,
            961,26,28,2143,296,25,23,50,2190,106,
            76,77,108,2209,2258,2256,2736,90,143,6914,
            6914,2792,6914,2738,3579,3379,35,1044,32,5230,
            6914,27,30,31,983,961,26,28,2143,296,
            25,23,50,2190,106,76,77,108,2209,2258,
            2256,2322,1259,35,1044,32,4952,1473,27,30,
            31,983,961,375,28,6914,6914,6914,6914,6914,
            2302,243,35,893,425,3476,3325,35,1044,32,
            5230,6914,27,30,31,983,961,26,28,2143,
            296,25,23,50,2190,106,76,77,108,2209,
            2258,2256,2736,49,6914,6914,6914,2792,2433,3581,
            6914,1329,6914,1217,1247,1867,1862,1862,1862,1862,
            368,6914,6914,6914,355,1848,357,6914,6914,350,
            1189,1460,35,1044,32,4952,193,27,30,31,
            983,961,375,28,6914,349,3266,3276,5047,5109,
            3831,3379,35,1044,32,5230,1862,27,30,31,
            983,961,26,28,2143,296,25,23,50,2190,
            106,76,77,108,2209,2258,2256,2322,6914,6914,
            6914,1862,1862,3048,1862,1862,5211,1862,4351,6914,
            1329,6914,6914,342,346,626,3478,6914,6914,369,
            6914,6914,6914,355,1848,357,6914,6914,353,1189,
            3945,67,66,3641,65,64,1105,1991,3379,35,
            1044,32,5230,1256,27,30,31,983,961,26,
            28,2143,296,25,23,50,2190,106,76,77,
            108,2209,2258,2256,2322,1525,35,1044,32,4550,
            3376,27,30,31,983,961,375,28,3325,35,
            1044,32,5230,3480,27,30,31,983,961,26,
            28,2143,296,25,23,50,2190,106,76,77,
            108,2209,2258,2256,2736,6914,542,6914,6914,3574,
            1222,35,3343,32,4952,1473,27,30,31,983,
            961,375,28,1339,35,1044,32,4550,3990,27,
            30,31,983,961,375,28,6914,355,1848,357,
            1862,1862,350,1189,6914,388,6914,157,35,893,
            425,6914,6914,540,541,6914,1862,6914,3333,1862,
            6914,6914,440,1862,380,2944,2862,385,1862,1329,
            2123,55,1465,6914,3329,2395,2433,4351,368,49,
            1465,1217,355,1848,357,4351,54,350,1189,3291,
            1247,1244,6914,101,6914,352,1073,357,5371,3945,
            6914,6914,6914,2231,193,592,6914,3945,3831,3325,
            35,1044,32,5230,2782,27,30,31,983,961,
            26,28,2143,296,25,23,50,2190,106,76,
            77,108,2209,2258,2256,3436,3325,35,1044,32,
            5230,6914,27,30,31,983,961,26,28,2143,
            296,25,23,50,2190,106,76,77,108,2209,
            2258,2256,3437,6914,6914,6914,6914,402,2643,155,
            6914,155,6914,1217,1217,396,1217,6914,6914,6914,
            6914,4021,6914,396,6914,6914,6914,6914,6914,454,
            456,3339,2839,3122,3165,921,189,189,6914,189,
            3816,3122,3165,6914,6914,3084,2486,234,3497,6914,
            6914,3325,35,1044,32,5230,2893,27,30,31,
            983,961,26,28,2143,296,25,23,50,2190,
            106,76,77,108,2209,2258,2256,3575,3325,35,
            1044,32,5230,6914,27,30,31,983,961,26,
            28,2143,296,25,23,50,2190,106,76,77,
            108,2209,2258,2256,3576,3325,35,1044,32,5230,
            6914,27,30,31,983,961,26,28,2143,296,
            25,23,50,2190,106,76,77,108,2209,2258,
            2256,3577,3325,35,1044,32,5230,6914,27,30,
            31,983,961,26,28,2143,296,25,23,50,
            2190,106,76,77,108,2209,2258,2256,3578,1723,
            35,1044,32,4550,5056,27,30,31,983,961,
            375,28,6914,6914,6914,6914,1504,6914,6914,6914,
            3771,6914,6914,6914,3325,35,1044,32,5230,387,
            27,30,31,983,961,26,28,2143,296,25,
            23,50,2190,106,76,77,108,2209,2258,2256,
            3688,3541,35,893,425,4027,6914,155,155,6914,
            1936,832,1217,1217,271,296,4351,6914,6914,155,
            6914,355,1848,357,1217,1329,350,1189,6914,388,
            6914,6914,2711,308,369,189,189,1217,379,6914,
            6914,6914,2034,6914,3584,3881,388,189,380,2944,
            2862,385,266,6914,6914,6914,3882,6914,2991,6914,
            189,3178,6914,3278,6914,382,2944,2862,385,195,
            269,264,265,3325,35,1044,32,5230,6914,27,
            30,31,983,961,26,28,2143,296,25,23,
            50,2190,106,76,77,108,2209,2258,3439,6914,
            6914,6914,6914,6914,6914,6914,6914,309,6914,6914,
            6914,276,279,282,825,1180,6914,3282,371,1460,
            35,1044,32,4952,6914,27,30,31,983,961,
            375,28,6914,1936,1587,911,1142,1653,5992,285,
            3325,35,1044,32,5230,6914,27,30,31,983,
            961,26,28,2143,296,25,23,50,2190,106,
            76,77,108,2209,2258,3451,1785,259,6914,6914,
            6914,1778,598,6914,6914,3771,4351,6914,1329,6914,
            2820,6914,6914,155,3178,4521,6914,369,1217,6914,
            6914,355,1848,357,262,189,351,1189,3945,6914,
            157,35,893,425,2984,6914,213,6914,155,1515,
            387,189,6914,1217,237,249,652,6914,6914,6914,
            3884,236,246,247,248,250,4020,4048,6914,1,
            1329,6914,49,202,598,6914,189,6914,6914,368,
            3290,371,6914,1247,1045,3885,201,6914,6914,216,
            200,203,204,205,206,207,262,189,6914,6914,
            388,6914,243,35,893,425,2984,3187,213,4316,
            155,1515,6914,6914,396,1217,237,249,652,380,
            2944,2862,385,236,246,247,248,250,6914,2991,
            6914,3665,3122,3165,49,202,6914,6914,189,6914,
            6914,6914,6914,6914,6914,1247,1400,2533,201,6914,
            214,217,200,203,204,205,206,207,2332,35,
            1044,32,4550,3376,27,30,31,983,961,375,
            28,3325,35,1044,32,5230,6914,27,30,31,
            983,961,26,28,2143,296,25,23,50,2190,
            106,76,77,108,2209,3383,6914,6914,3325,35,
            1044,32,5230,4579,27,30,31,983,961,26,
            28,2143,296,25,23,50,2190,106,76,77,
            108,2209,3384,6914,6914,6914,6914,6914,155,6914,
            355,1848,357,1217,345,350,1189,6914,388,598,
            6914,155,329,35,893,425,598,2433,6914,1854,
            6914,589,1217,5825,6914,6914,189,380,2944,2862,
            385,262,189,6914,6914,4039,6914,590,379,189,
            6914,2984,6914,213,49,193,1515,6914,221,6914,
            6914,237,249,652,6914,1247,47,6914,236,246,
            247,248,250,1904,6914,1889,35,1044,32,4952,
            202,27,30,31,983,961,375,28,6914,757,
            6914,6914,6914,201,6914,6914,3632,200,203,204,
            205,206,207,3325,35,1044,32,5230,6914,27,
            30,31,983,961,26,28,2143,296,25,23,
            50,2190,106,76,77,108,3387,6914,6914,6914,
            6914,431,4036,6914,1329,6914,598,6914,3818,415,
            35,893,425,369,1995,6914,6914,355,1848,357,
            6914,6914,351,1189,6914,388,6914,155,262,189,
            6914,6914,4351,6914,2643,6914,6914,6914,2984,598,
            213,49,6914,1515,382,2944,2862,385,237,249,
            652,6914,1247,47,379,236,246,247,248,250,
            6914,3180,189,517,6914,6914,6914,202,598,6914,
            6914,2984,6914,213,6914,6914,1199,6914,6914,3393,
            201,466,6914,211,200,203,204,205,206,207,
            262,189,157,35,893,425,415,35,893,425,
            2984,6914,213,3382,6914,1515,6914,6914,3586,6914,
            237,249,652,229,6914,6914,6914,236,246,247,
            248,250,6914,6914,49,603,6914,6914,49,202,
            598,6914,6914,2644,6914,1247,1983,6914,598,1247,
            47,6914,201,6914,6914,209,200,203,204,205,
            206,207,262,189,157,35,893,425,6914,3187,
            379,189,2984,2053,213,6914,6914,1515,6914,6914,
            221,6914,237,249,652,6914,6914,6914,6914,236,
            246,247,248,250,6914,1904,49,689,6914,6914,
            6914,202,598,6914,6914,6914,1778,1247,47,6914,
            3771,4351,6914,6914,201,6914,6914,210,200,203,
            204,205,206,207,262,189,759,35,893,425,
            6914,1065,6914,3945,2984,6914,213,6914,6914,1515,
            6914,6914,4993,230,237,249,652,6914,6914,6914,
            6914,236,246,247,248,250,6914,6914,49,775,
            223,6914,6914,202,598,1329,2433,6914,6914,1247,
            47,1217,6914,6914,368,6914,201,6914,6914,220,
            200,203,204,205,206,207,262,189,6914,6914,
            6914,6914,6914,1931,193,6914,2984,6914,213,6914,
            6914,1515,6914,6914,4805,6914,237,249,652,396,
            6914,6914,6914,236,246,247,248,250,6914,6914,
            6914,3639,35,554,6914,202,3665,3122,3165,6914,
            157,35,893,425,271,296,6914,6914,201,6914,
            3224,3682,200,203,204,205,206,207,1643,35,
            1044,32,4550,1473,27,30,31,983,961,375,
            28,861,49,6914,6914,6914,598,2054,35,893,
            425,4043,266,1247,47,6914,6914,6914,6914,6914,
            2057,35,893,425,6914,6914,6914,6914,262,189,
            269,264,265,6914,6914,6914,6914,973,2984,308,
            213,6914,6914,1515,6914,6914,6914,6914,237,249,
            652,6914,49,6914,6914,236,246,247,248,250,
            355,1848,357,1247,2817,350,1189,202,6914,6914,
            6914,276,279,282,825,1180,415,35,893,425,
            201,349,6914,225,200,203,204,205,206,207,
            243,35,893,425,1719,1851,1917,2115,6230,947,
            6914,6914,6914,6914,598,6914,6914,6914,49,6914,
            6914,6914,6914,3670,6914,6914,6914,6914,6914,1247,
            2877,6914,49,6914,6914,6914,262,189,6914,342,
            346,626,6914,1247,2868,6914,2984,6914,213,72,
            6914,1515,6914,5217,6914,6914,237,249,652,563,
            564,568,3289,236,246,247,248,250,6914,1256,
            6914,1033,6914,6914,6914,202,598,6914,6914,2434,
            35,893,425,6914,6914,2181,6914,6914,201,6914,
            6914,219,200,203,204,205,206,207,262,189,
            243,35,893,425,243,35,893,425,2984,6914,
            213,49,6914,1515,6914,6914,6914,6914,237,249,
            652,6914,1247,2989,6914,236,246,247,248,250,
            6914,6914,49,6914,6914,6914,49,202,6914,6914,
            6914,6914,6914,1247,2830,6914,2782,1247,2817,6914,
            201,6914,6914,228,200,203,204,205,206,207,
            3325,35,1044,32,5230,6914,27,30,31,983,
            961,26,28,2143,296,25,23,50,2190,106,
            76,77,108,3388,3325,35,1044,32,5230,6914,
            27,30,31,983,961,26,28,2143,296,25,
            23,50,2190,106,76,77,108,3396,3325,35,
            1044,32,5230,6914,27,30,31,983,961,26,
            28,2143,296,25,23,50,2190,106,76,77,
            85,3325,1527,1044,3280,5230,6914,27,30,31,
            983,961,26,28,2143,296,25,23,50,2190,
            106,76,77,84,3325,35,1044,32,5230,6914,
            27,30,31,983,961,26,28,2143,296,25,
            23,50,2190,106,76,77,83,3325,35,1044,
            32,5230,6914,27,30,31,983,961,26,28,
            2143,296,25,23,50,2190,106,76,77,82,
            3325,35,1044,32,5230,6914,27,30,31,983,
            961,26,28,2143,296,25,23,50,2190,106,
            76,77,81,3325,35,1044,32,5230,6914,27,
            30,31,983,961,26,28,2143,296,25,23,
            50,2190,106,76,77,80,3325,35,1044,32,
            5230,6914,27,30,31,983,961,26,28,2143,
            296,25,23,50,2190,106,76,77,79,3325,
            35,1044,32,5230,6914,27,30,31,983,961,
            26,28,2143,296,25,23,50,2190,106,76,
            77,78,3080,35,1044,32,5230,6914,27,30,
            31,983,961,26,28,2143,296,25,23,50,
            2190,106,76,77,104,3325,35,1044,32,5230,
            6914,27,30,31,983,961,26,28,2143,296,
            25,23,50,2190,106,76,77,110,3325,35,
            1044,32,5230,6914,27,30,31,983,961,26,
            28,2143,296,25,23,50,2190,106,76,77,
            109,3325,35,1044,32,5230,6914,27,30,31,
            983,961,26,28,2143,296,25,23,50,2190,
            106,76,77,107,3325,35,1044,32,5230,6914,
            27,30,31,983,961,26,28,2143,296,25,
            23,50,2190,106,76,77,105,1689,6914,6914,
            6914,6914,4351,6914,6914,6914,6914,6914,6914,6914,
            6914,6914,6914,6914,6914,157,35,893,425,1754,
            35,1044,32,5230,262,27,30,31,983,961,
            26,28,2143,296,25,23,50,2190,86,76,
            77,6914,6914,6914,239,249,652,49,6914,6914,
            6914,238,246,247,248,250,6914,6914,1247,47,
            6914,6914,6914,1899,155,6914,6914,6914,4351,4351,
            6914,6914,6914,155,155,1988,6914,6914,4351,4351,
            4351,6914,1259,6914,6914,6914,240,242,244,666,
            262,379,251,241,243,157,35,893,425,6914,
            379,379,262,243,35,893,425,6914,6914,6914,
            239,249,652,13,6914,6086,3393,238,246,247,
            248,250,239,249,652,3393,3393,49,6914,238,
            246,247,248,250,6914,49,6914,6914,1247,47,
            546,6914,6914,6914,6914,6914,1247,646,6914,544,
            3817,2077,240,242,244,666,4351,6914,251,241,
            243,6914,1390,155,240,242,244,666,4351,6914,
            251,241,243,6914,6914,6914,6914,6914,262,2369,
            6914,6086,3590,35,893,425,4027,6914,628,6914,
            379,2416,6914,6086,6914,272,296,6914,239,249,
            652,6914,6914,6914,6914,238,246,247,248,250,
            6914,6914,6914,6914,308,3393,6914,1810,157,35,
            893,425,4351,6914,6914,6914,6914,6914,6914,6914,
            6914,6914,6914,266,6914,6914,6914,6914,6914,597,
            240,242,244,666,262,6914,251,241,243,6914,
            49,270,264,265,157,35,893,425,6914,6914,
            6914,1247,47,155,239,249,652,2595,598,6086,
            6914,238,246,247,248,250,1414,6914,6914,6914,
            6914,4351,6914,6914,6914,2312,49,6914,309,6914,
            379,189,277,280,283,825,1180,1247,47,2166,
            2945,6914,6914,262,4351,6914,240,242,244,666,
            6914,6914,581,241,243,3393,6914,6914,6914,6914,
            286,2359,155,239,249,652,262,598,6914,6914,
            238,246,247,248,250,6914,6914,6914,6914,2861,
            6914,6914,6914,6914,6914,6914,239,249,652,379,
            189,6914,6914,238,246,247,248,250,2255,3262,
            6914,6914,6914,4351,6914,240,242,244,666,6914,
            2344,252,241,243,3393,4351,6914,6914,6914,6914,
            6914,6914,6914,6914,6914,262,6914,6914,240,242,
            244,666,6914,6914,582,241,243,262,3033,6914,
            6914,6914,6914,6914,6914,239,249,652,6914,6914,
            6914,6914,238,246,247,248,250,239,249,652,
            3688,35,554,6914,238,246,247,248,250,6914,
            6914,6914,6914,272,296,6914,1180,6914,6914,6914,
            4612,4351,6914,6914,6914,6914,3005,240,242,244,
            666,4351,1297,341,241,243,4612,4351,6914,240,
            242,244,666,262,6914,536,241,243,6914,155,
            6914,266,6914,379,598,6914,593,155,6914,262,
            6914,6914,598,2644,444,4003,6914,6914,6914,270,
            264,265,6914,6914,6914,6914,379,189,3393,2644,
            444,4003,6914,6914,379,189,2945,6914,6914,6914,
            155,6914,6914,6914,221,598,6914,6914,6914,6914,
            6914,3393,596,6914,6914,445,446,447,666,1904,
            277,280,283,825,1180,6914,6914,379,189,6914,
            6914,445,446,447,666,3483,6914,221,6914,6914,
            6914,1603,6914,6914,6914,6914,6914,6914,6914,6914,
            6914,6914,1904,6914,6914,6914,6914,1603,6914,6914,
            6914,6914,6914,6914,6914,6914,6914,6914,6914,6914,
            6914,6914,6914,6914,6914,6914,6914,6914,6914,6914,
            6914,6914,6914,6914,3819,6914,6914,6914,6914,6914,
            6914,6914,6914,6914,6914,6914,6914,6914,563,564,
            569,6914,6914,448,450,6914,6914,6914,6914,6914,
            6914,6914,6914,6914,6914,6914,6914,3856,6914,448,
            451,6914,6914,6914,6914,6914,6914,6914,6914,6914,
            1353,6914,6914,6262,6914,6914,6914,6914,6914,6914,
            6914,6914,6914,6914,6914,6914,6914,6914,6914,6914,
            6914,6914,4055,6914,0,538,6027,0,1,263,
            0,39,6929,0,39,6928,0,1,1772,0,
            907,1,0,39,1,6929,0,39,1,6928,
            0,1,1588,0,1,811,0,263,253,0,
            318,431,0,318,323,0,7182,275,0,7181,
            275,0,7288,275,0,7287,275,0,7209,275,
            0,7208,275,0,7207,275,0,7206,275,0,
            7205,275,0,7204,275,0,7203,275,0,7202,
            275,0,7221,275,0,7220,275,0,7219,275,
            0,7218,275,0,7217,275,0,7216,275,0,
            7215,275,0,7214,275,0,7213,275,0,7212,
            275,0,7211,275,0,39,275,6929,0,39,
            275,6928,0,6952,275,0,1427,424,0,6929,
            48,0,6928,48,0,1,367,0,38,811,
            0,38,6929,0,38,6928,0,491,1720,0,
            477,1847,0,1427,29,0,6926,1,0,2182,
            354,0,1,481,0,495,635,0,494,2298,
            0,35,33,0,47,37,0,538,1668,0,
            6952,1,263,0,39,1,263,0,263,453,
            0,1,1860,0,1,7221,0,1,7220,0,
            1,7219,0,1,7218,0,1,7217,0,1,
            7216,0,1,7215,0,1,7214,0,1,7213,
            0,1,7212,0,1,7211,0,6929,37,0,
            6928,37,0,43,6950,0,43,37,0,6926,
            420,0,6925,420,0,1,713,0,1,1536,
            0,263,254,0,6924,442,0,6923,442,0,
            263,452,0,1,5829,0,1,5508,0,1,
            5554,0,1,5577,0,1,5600,0,1,5623,
            0,1,5646,0,1,5669,0,1,5531,0,
            1,6936,0,1,6935,0,1,6934,0,1,
            6933,0,1,6932,0,1,6931,0,1,6930,
            0,1,1857,0,1,1863,0,1,1930,0,
            1,1996,0,1,1998,0,1,3297,0,39,
            1,0,6922,1,0,4245,126,0,367,482,
            0,275,6929,0,275,6928,0,6920,1,0,
            6919,1,0,1032,91,0,32,34,0,39,
            811,0,6950,45,0,37,45,0,1,263,
            3501,0,6923,263,0,3503,263,0,6952,1,
            0,271,884,0,425,32,0,424,29,0,
            3597,263,0,10,12,0,4245,128,0,4245,
            127,0,1,92,0,8,10,12,0,3672,
            227,0,6929,36,0,6928,36,0,6929,2,
            37,0,6928,2,37,0,3678,420,0,367,
            95,0,35,73,0,8,12,0,313,4056,
            0,218,5309,0
        };
    };
    public final static char baseAction[] = BaseAction.baseAction;
    @Override
    public final int baseAction(int index) { return baseAction[index]; }
    public final static char lhs[] = baseAction;
    @Override
    public final int lhs(int index) { return lhs[index]; };

    public interface TermCheck {
        public final static byte termCheck[] = {0,
            0,1,2,3,4,5,6,7,8,9,
            10,11,12,13,14,15,16,17,18,19,
            20,21,22,23,24,25,26,27,28,29,
            30,31,32,33,34,35,36,37,38,39,
            40,41,42,43,44,45,46,47,48,49,
            50,51,52,53,0,55,56,3,58,59,
            60,0,62,63,64,4,66,67,0,69,
            0,1,2,73,74,75,76,77,78,79,
            80,81,82,83,84,85,0,1,2,3,
            4,5,6,7,8,9,10,11,12,13,
            14,15,16,17,18,19,20,21,22,23,
            24,25,26,27,28,29,30,31,32,33,
            34,35,36,37,38,39,40,41,42,43,
            44,45,46,47,48,49,50,51,52,53,
            0,55,56,3,58,59,60,0,62,63,
            64,4,66,67,0,69,0,1,2,73,
            74,75,76,77,78,79,80,81,82,83,
            84,85,0,1,2,3,4,5,6,7,
            8,9,10,11,12,13,14,15,16,17,
            18,19,20,21,22,23,24,25,26,27,
            28,29,30,31,32,33,34,35,36,37,
            38,39,40,41,42,43,44,45,46,47,
            48,49,50,51,52,53,0,55,56,0,
            58,59,60,4,62,63,64,0,66,67,
            3,69,0,1,2,73,74,75,76,77,
            78,79,80,81,82,83,84,85,0,1,
            2,3,4,5,6,7,8,9,10,11,
            12,13,14,15,16,17,18,19,20,21,
            22,23,24,25,26,27,28,29,30,31,
            32,33,34,35,36,37,38,39,40,41,
            42,43,44,45,46,47,48,49,50,51,
            52,53,0,55,56,3,58,59,60,0,
            62,63,64,97,66,67,7,69,0,1,
            2,0,74,75,76,77,78,79,80,81,
            82,83,84,85,0,1,2,3,4,5,
            6,7,8,9,10,11,12,13,14,15,
            16,17,18,19,20,21,22,23,24,25,
            26,27,28,29,30,31,32,33,34,35,
            36,37,38,39,40,41,42,43,44,45,
            46,47,48,49,50,51,52,53,0,55,
            56,3,58,59,60,74,62,63,64,0,
            66,67,0,69,0,1,2,0,74,75,
            76,77,78,79,80,81,82,83,84,85,
            0,1,2,3,4,5,6,7,8,9,
            10,11,12,13,14,15,16,17,18,19,
            20,21,22,23,24,25,26,27,28,29,
            30,31,32,33,34,35,36,37,38,39,
            40,41,42,43,44,45,46,47,48,49,
            50,51,52,53,0,55,56,70,58,59,
            60,7,62,63,64,0,66,67,0,69,
            0,1,2,94,74,75,76,77,78,79,
            80,81,82,83,84,85,0,1,2,3,
            4,5,6,7,8,9,10,11,12,13,
            14,15,16,17,18,19,20,21,22,23,
            24,25,26,27,28,29,30,31,32,33,
            34,35,36,37,38,39,40,41,42,43,
            44,45,46,47,48,49,50,51,52,53,
            0,55,56,0,58,59,60,4,62,63,
            64,0,66,67,0,69,0,92,93,3,
            74,75,76,77,78,79,80,81,82,83,
            84,85,0,1,2,3,4,5,6,7,
            8,9,10,11,12,13,14,15,16,17,
            18,19,20,21,22,23,24,25,26,27,
            28,29,30,31,32,33,34,35,36,37,
            38,39,40,41,42,43,44,45,46,47,
            48,49,50,51,52,53,70,55,56,0,
            58,59,60,0,62,63,64,0,66,67,
            0,69,5,10,7,94,74,75,76,77,
            78,79,80,81,82,83,84,85,0,1,
            2,3,4,5,6,7,8,9,10,11,
            12,13,14,15,16,17,18,19,20,21,
            22,23,24,25,26,27,28,29,30,31,
            32,33,34,35,36,37,38,39,40,41,
            42,43,44,45,46,47,48,49,50,51,
            52,53,0,55,56,3,58,59,60,0,
            62,63,64,94,66,67,0,69,0,1,
            2,5,74,75,76,77,78,79,80,81,
            82,83,84,85,0,1,2,3,4,5,
            6,7,8,9,10,11,12,13,14,15,
            16,17,18,19,20,21,22,23,24,25,
            26,27,28,29,30,31,32,33,34,35,
            36,37,38,39,40,41,42,43,44,45,
            46,47,48,49,50,51,52,53,0,55,
            56,0,58,59,60,0,62,63,64,0,
            66,67,3,69,0,1,2,0,74,75,
            76,77,78,79,80,81,82,83,84,85,
            0,1,2,3,4,5,6,7,8,9,
            10,11,12,13,14,15,16,17,18,19,
            20,21,22,23,24,25,26,27,28,29,
            30,31,32,33,34,35,36,37,38,39,
            40,41,42,43,44,45,46,47,48,49,
            50,51,52,53,0,55,56,70,58,59,
            60,7,62,63,64,97,66,67,97,69,
            0,96,0,0,74,75,76,77,78,79,
            80,81,82,83,84,85,0,1,2,3,
            4,5,6,7,8,9,10,11,12,13,
            14,15,16,17,18,19,20,21,22,23,
            24,25,26,27,28,29,30,31,32,33,
            34,35,36,37,38,39,40,41,42,43,
            44,45,46,47,48,49,50,51,52,53,
            0,55,56,70,58,59,60,0,62,63,
            64,0,66,67,0,69,86,87,86,87,
            74,75,76,77,78,79,80,81,82,83,
            84,85,0,1,2,3,4,5,6,7,
            8,9,10,11,12,13,14,15,16,17,
            18,19,20,21,22,23,24,25,26,27,
            28,29,30,31,32,33,34,35,36,37,
            38,39,40,41,42,43,44,45,46,47,
            48,49,50,51,52,53,0,55,56,3,
            58,59,60,0,62,63,64,0,66,67,
            3,69,0,92,93,3,74,75,76,77,
            78,79,80,81,82,83,84,85,0,1,
            2,3,4,5,6,7,8,120,10,11,
            12,13,14,15,16,17,18,19,20,21,
            22,23,24,25,26,27,28,29,30,31,
            32,33,34,35,36,37,38,0,40,41,
            42,43,44,45,46,47,48,49,50,51,
            52,53,0,55,56,3,58,0,60,0,
            1,2,3,4,5,6,7,8,9,10,
            11,12,13,14,15,16,17,18,19,20,
            21,22,23,24,25,26,27,28,29,30,
            31,32,33,0,1,2,0,4,39,0,
            41,0,1,2,3,4,5,6,7,8,
            0,54,0,61,55,56,57,58,59,9,
            0,62,63,0,1,2,3,4,91,6,
            71,8,73,34,35,98,0,0,0,1,
            2,3,4,5,6,7,8,88,11,12,
            13,14,15,16,17,18,19,20,21,22,
            23,24,25,26,27,28,29,30,31,32,
            33,0,71,114,115,116,0,1,2,3,
            4,5,6,7,8,9,10,11,12,13,
            14,15,16,17,18,19,20,21,22,23,
            24,25,26,27,28,29,30,31,32,33,
            0,1,2,0,4,39,96,41,0,1,
            2,3,4,0,6,54,8,9,118,0,
            0,55,56,57,58,59,65,7,62,63,
            0,1,2,3,4,0,6,71,8,73,
            0,0,1,2,0,4,5,39,7,9,
            89,90,0,0,88,11,12,13,14,15,
            16,17,18,19,20,21,22,23,24,25,
            26,27,28,29,30,31,32,33,65,39,
            114,115,116,0,1,2,3,4,5,6,
            7,8,9,10,11,12,13,14,15,16,
            17,18,19,20,21,22,23,24,25,26,
            27,28,29,30,31,32,33,65,0,0,
            68,3,39,5,41,7,0,9,9,0,
            1,2,3,4,0,6,0,8,55,56,
            57,58,59,9,0,62,63,64,4,5,
            0,7,34,35,36,37,73,39,22,23,
            24,25,26,27,28,29,30,31,32,33,
            0,88,54,0,1,2,3,4,5,61,
            7,0,0,65,0,0,68,68,70,71,
            72,73,73,9,0,1,2,3,4,5,
            6,7,8,120,86,87,72,89,90,91,
            92,93,94,95,96,97,98,99,100,101,
            102,103,104,105,106,107,108,109,110,111,
            112,97,0,0,61,117,118,119,0,57,
            0,3,57,5,4,7,0,9,0,1,
            2,0,4,69,6,61,8,0,0,1,
            2,3,4,5,70,7,0,1,2,0,
            4,38,34,35,36,37,95,39,0,0,
            22,23,24,25,26,27,28,29,30,31,
            32,33,54,61,54,38,0,1,2,61,
            4,0,6,65,8,57,68,61,70,71,
            72,73,0,1,2,3,4,0,6,61,
            8,9,71,65,86,87,68,89,90,91,
            92,93,94,95,96,97,98,99,100,101,
            102,103,104,105,106,107,108,109,110,111,
            112,39,0,57,0,117,118,119,0,1,
            2,3,4,5,6,7,8,9,10,11,
            12,13,14,15,16,17,18,19,20,21,
            22,23,24,25,26,27,28,29,30,31,
            32,33,0,1,2,3,4,39,6,41,
            8,9,0,1,2,0,4,5,54,7,
            0,1,2,55,56,57,58,59,101,102,
            62,63,64,0,1,2,3,4,5,6,
            7,8,0,10,11,12,13,14,15,16,
            17,18,19,20,21,0,88,0,1,2,
            0,4,5,61,7,0,9,34,35,36,
            37,38,0,40,72,42,43,44,45,46,
            47,48,49,50,51,52,53,0,120,0,
            1,2,3,4,5,6,7,8,9,10,
            11,12,13,14,15,16,17,18,19,20,
            21,22,23,24,25,26,27,28,29,30,
            31,32,33,0,0,70,54,0,39,72,
            41,4,0,0,0,1,2,4,4,0,
            6,0,8,54,55,56,57,58,59,22,
            9,62,63,64,97,22,101,102,103,104,
            105,106,107,108,109,110,111,112,0,1,
            2,3,4,5,6,7,8,88,0,1,
            2,3,4,5,6,7,8,9,10,11,
            12,13,14,15,16,17,18,19,20,21,
            22,23,24,25,26,27,28,29,30,31,
            32,33,0,72,0,0,0,39,0,41,
            0,1,2,5,4,5,94,7,0,61,
            0,92,93,55,56,57,58,59,23,24,
            62,63,64,0,0,1,2,114,115,116,
            6,73,22,23,24,25,26,27,28,29,
            30,31,32,33,0,0,88,0,1,2,
            3,4,5,6,7,8,9,10,11,12,
            13,14,15,16,17,18,19,20,21,22,
            23,24,25,26,27,28,29,30,31,32,
            33,57,86,87,61,91,39,95,41,0,
            1,2,98,4,5,0,7,99,100,0,
            92,93,55,56,57,58,59,0,0,62,
            63,64,68,0,1,2,0,1,2,6,
            73,22,23,24,25,26,27,28,29,30,
            31,32,33,0,0,88,0,1,2,3,
            4,5,6,7,8,9,10,11,12,13,
            14,15,16,17,18,19,20,21,22,23,
            24,25,26,27,28,29,30,31,32,33,
            0,1,2,65,4,39,6,41,8,0,
            1,2,66,67,0,6,0,8,0,0,
            57,55,56,57,58,59,0,0,62,63,
            64,0,68,0,1,2,0,4,0,73,
            22,23,24,25,26,27,28,29,30,31,
            32,33,38,0,88,0,1,2,3,4,
            5,6,7,8,9,10,11,12,13,14,
            15,16,17,18,19,20,21,22,23,24,
            25,26,27,28,29,30,31,32,33,70,
            57,0,1,2,39,0,41,6,0,8,
            5,65,71,5,68,0,0,0,0,71,
            55,56,57,58,59,9,9,62,63,64,
            101,102,103,104,105,106,107,108,109,110,
            111,112,0,0,1,2,3,4,0,6,
            0,8,10,88,0,1,2,3,4,5,
            6,7,8,9,10,11,12,13,14,15,
            16,17,18,19,20,21,22,23,24,25,
            26,27,28,29,30,31,32,33,72,71,
            73,0,0,39,3,41,0,0,0,0,
            0,59,86,87,99,100,0,99,100,55,
            56,57,58,59,71,65,62,63,64,22,
            23,24,25,26,27,28,29,30,31,32,
            33,0,1,2,3,4,121,6,0,8,
            34,35,88,0,1,2,3,4,5,6,
            7,8,9,10,11,12,13,14,15,16,
            17,18,19,20,21,22,23,24,25,26,
            27,28,29,30,31,32,33,0,0,1,
            2,0,39,91,41,86,87,9,0,91,
            98,95,61,0,0,0,98,0,55,56,
            57,58,59,9,9,62,63,64,0,1,
            2,3,4,5,6,7,8,0,10,11,
            12,13,14,15,16,17,18,19,20,21,
            0,88,0,0,1,2,0,0,61,9,
            3,9,34,35,36,37,38,69,40,0,
            42,43,44,45,46,47,48,49,50,51,
            52,53,68,0,69,68,72,0,60,39,
            3,54,0,65,66,67,0,1,2,3,
            4,5,6,7,8,9,10,11,12,13,
            14,15,16,17,18,19,20,21,61,66,
            67,65,65,54,72,68,89,90,0,0,
            34,35,36,37,38,0,40,9,42,43,
            44,45,46,47,48,49,50,51,52,53,
            0,0,0,1,2,0,60,5,89,90,
            0,1,2,0,9,69,0,39,0,73,
            0,1,2,3,4,5,6,7,8,9,
            10,11,12,13,14,15,16,17,18,19,
            20,21,0,1,2,0,68,114,115,116,
            34,35,0,68,34,35,36,37,38,57,
            40,0,42,43,44,45,46,47,48,49,
            50,51,52,53,0,1,2,0,73,0,
            60,68,0,0,0,0,3,86,87,69,
            0,1,2,3,4,5,6,7,8,57,
            10,11,12,13,14,15,16,17,18,19,
            20,21,0,0,0,70,0,0,0,0,
            68,9,9,9,34,35,36,37,38,0,
            40,57,42,43,44,45,46,47,48,49,
            50,51,52,53,61,0,0,86,87,70,
            60,39,39,68,70,9,66,67,0,1,
            2,3,4,5,6,7,8,0,10,11,
            12,13,14,15,16,17,18,19,20,21,
            0,65,0,54,65,0,72,70,0,9,
            113,0,34,35,36,37,38,0,40,54,
            42,43,44,45,46,47,48,49,50,51,
            52,53,0,0,96,0,71,0,60,73,
            0,54,0,0,66,67,0,1,2,3,
            4,5,6,7,8,9,10,11,12,13,
            14,15,16,17,18,19,20,21,0,0,
            65,3,72,5,6,7,89,90,0,0,
            34,35,36,37,38,0,40,70,42,43,
            44,45,46,47,48,49,50,51,52,53,
            65,0,34,35,36,37,60,96,40,0,
            0,71,3,71,71,69,6,0,9,86,
            87,113,54,86,87,0,1,2,0,61,
            0,3,54,65,66,67,68,68,70,22,
            23,24,25,26,27,28,29,30,31,32,
            33,0,0,0,86,87,71,89,90,91,
            92,93,94,95,96,86,87,99,100,101,
            61,103,104,105,106,107,108,109,110,111,
            112,72,57,0,54,117,0,1,2,3,
            4,5,6,7,8,9,10,11,12,13,
            14,15,16,17,18,19,20,21,0,0,
            1,2,0,1,2,0,1,2,0,0,
            34,35,36,37,38,0,40,0,42,43,
            44,45,46,47,48,49,50,51,52,53,
            0,1,2,3,4,5,6,7,8,0,
            10,11,12,13,14,15,16,17,18,19,
            20,21,54,0,113,0,57,4,0,57,
            0,0,57,65,34,35,36,37,38,54,
            40,54,42,43,44,45,46,47,48,49,
            50,51,52,53,0,0,0,89,90,4,
            4,0,0,9,118,3,66,67,0,1,
            2,3,4,5,6,7,8,54,10,11,
            12,13,14,15,16,17,18,19,20,21,
            0,0,0,3,3,3,71,0,0,9,
            70,70,34,35,36,37,38,10,40,54,
            42,43,44,45,46,47,48,49,50,51,
            52,53,0,95,0,3,72,3,60,0,
            1,2,3,4,5,6,7,8,41,10,
            11,12,13,14,15,16,17,18,19,20,
            21,61,54,0,57,65,3,0,68,0,
            0,0,72,34,35,36,37,38,0,40,
            0,42,43,44,45,46,47,48,49,50,
            51,52,53,0,0,0,3,0,3,0,
            61,0,1,2,3,4,5,6,7,8,
            0,10,11,12,13,14,15,16,17,18,
            19,20,21,54,54,54,0,0,0,3,
            0,0,1,2,65,34,35,36,37,38,
            0,40,75,42,43,44,45,46,47,48,
            49,50,51,52,53,61,0,60,89,90,
            0,60,0,1,2,3,4,5,6,7,
            8,61,10,11,12,13,14,15,16,17,
            18,19,20,21,54,0,0,0,57,0,
            1,2,0,0,54,65,34,35,36,37,
            38,41,40,0,42,43,44,45,46,47,
            48,49,50,51,52,53,0,0,0,89,
            90,4,60,0,1,2,3,4,5,6,
            7,8,0,10,11,12,13,14,15,16,
            17,18,19,20,21,0,57,54,3,0,
            0,0,0,0,3,0,0,34,35,36,
            37,38,10,40,0,42,43,44,45,46,
            47,48,49,50,51,52,53,0,0,0,
            0,36,37,60,0,1,2,3,4,5,
            6,7,8,41,10,11,12,13,14,15,
            16,17,18,19,20,21,61,54,0,57,
            54,0,0,0,0,0,113,0,34,35,
            36,37,38,0,40,0,42,43,44,45,
            46,47,48,49,50,51,52,53,0,1,
            2,3,4,5,6,7,8,0,10,11,
            12,13,14,15,16,17,18,19,20,21,
            0,0,117,0,119,0,0,0,0,0,
            0,0,34,35,36,37,38,0,40,0,
            42,43,44,45,46,47,48,49,50,51,
            52,53,0,1,2,3,4,5,6,7,
            8,0,10,11,12,13,14,15,16,17,
            18,19,20,21,0,0,0,0,0,0,
            0,0,0,0,0,0,34,35,36,37,
            38,0,40,0,42,43,44,45,46,47,
            48,49,50,51,52,53,0,1,2,3,
            4,5,6,7,8,0,10,11,12,13,
            14,15,16,17,18,19,20,21,0,0,
            0,0,0,0,0,0,0,0,0,0,
            34,35,36,37,38,0,40,0,42,43,
            44,45,46,47,48,49,50,51,52,53,
            0,1,2,0,4,0,0,0,0,0,
            10,11,12,13,14,15,16,17,18,19,
            20,21,22,23,24,25,26,27,28,29,
            30,31,32,33,0,0,0,0,0,0,
            0,41,0,0,0,0,0,0,0,0,
            1,2,0,4,0,55,56,0,58,10,
            11,12,13,14,15,16,17,18,19,20,
            21,22,23,24,25,26,27,28,29,30,
            31,32,33,0,0,0,0,0,0,0,
            41,0,0,0,0,0,0,0,0,1,
            2,0,0,0,55,56,0,58,10,11,
            12,13,14,15,16,17,18,19,20,21,
            22,23,24,25,26,27,28,29,30,31,
            32,33,0,0,0,0,0,0,0,41,
            0,0,0,0,0,0,0,0,1,2,
            0,0,0,55,56,0,58,10,11,12,
            13,14,15,16,17,18,19,20,21,22,
            23,24,25,26,27,28,29,30,31,32,
            33,0,0,0,0,0,0,0,41,0,
            1,2,3,4,5,6,7,8,9,0,
            0,0,55,56,0,58,0,0,0,0,
            0,22,23,24,25,26,27,28,29,30,
            31,32,33,0,0,0,0,0,39,22,
            23,24,25,26,27,28,29,30,31,32,
            33,0,0,54,0,0,0,0,0,0,
            61,0,1,2,3,4,5,6,7,8,
            9,72,0,0,0,0,0,0,0,0,
            0,0,0,22,23,24,25,26,27,28,
            29,30,31,32,33,0,0,0,0,0,
            39,0,0,0,0,0,0,0,0,0,
            0,0,0,1,2,3,4,5,0,7,
            0,0,61,0,0,0,0,0,0,0,
            0,0,0,72,22,23,24,25,26,27,
            28,29,30,31,32,33,22,23,24,25,
            26,27,28,29,30,31,32,33,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,61,0,0,0,65,0,0,
            68,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0
        };
    };
    public final static byte termCheck[] = TermCheck.termCheck;
    @Override
    public final int termCheck(int index) { return termCheck[index]; }

    public interface TermAction {
        public final static char termAction[] = {0,
            6914,6838,6478,6478,6478,6478,6478,6478,6478,6860,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,6842,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,6914,1,1,885,1,1979,
            1,39,762,7122,637,6952,1,1,333,6925,
            333,6928,6929,6921,1859,3550,3026,3093,2992,3500,
            4744,3540,650,3538,4148,3505,10,6863,6863,6863,
            6863,6863,6863,6863,6863,6863,6863,6863,6863,6863,
            6863,6863,6863,6863,6863,6863,6863,6863,6863,6863,
            6863,6863,6863,6863,6863,6863,6863,6863,6863,6863,
            6863,6863,6863,6863,6863,6863,6863,6863,6863,6863,
            6863,6863,6863,6863,6863,6863,6863,6863,6863,6863,
            6914,6863,6863,2182,6863,6863,6863,6914,6863,6863,
            6863,1375,6863,6863,1,6863,6914,6602,6599,6863,
            6863,6863,6863,6863,6863,6863,6863,6863,6863,6863,
            6863,6863,8,6875,6875,6875,6875,6875,6875,6875,
            6875,6875,6875,6875,6875,6875,6875,6875,6875,6875,
            6875,6875,6875,6875,6875,6875,6875,6875,6875,6875,
            6875,6875,6875,6875,6875,6875,6875,6875,6875,6875,
            6875,6875,6875,6875,6875,6875,6875,6875,6875,6875,
            6875,6875,6875,6875,6875,6875,394,6875,6875,432,
            6875,6875,6875,425,6875,6875,6875,6914,6875,6875,
            6132,6875,6914,6928,6929,6875,6875,6875,6875,6875,
            6875,6875,6875,6875,6875,6875,6875,6875,6914,6838,
            6478,6478,6478,6478,6478,6478,6478,6845,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,6842,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,6914,1,1,884,1,1979,1,151,
            762,7122,637,7307,1,1,3725,6925,6914,10517,
            10485,1,1859,3550,3026,3093,2992,3500,4744,3540,
            650,3538,4148,3505,6914,6838,6478,6478,6478,6478,
            6478,6478,6478,6845,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,6842,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,6914,1,
            1,3808,1,1979,1,1649,762,7122,637,153,
            1,1,432,6925,48,6602,6599,35,1859,3550,
            3026,3093,2992,3500,4744,3540,650,3538,4148,3505,
            6914,6838,6478,6478,6478,6478,6478,6478,6478,6845,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,6842,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,131,1,1,1662,1,1979,
            1,3776,762,7122,637,149,1,1,367,6925,
            434,6928,6929,3636,1859,3550,3026,3093,2992,3500,
            4744,3540,650,3538,4148,3505,6914,6838,6478,6478,
            6478,6478,6478,6478,6478,6845,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,6842,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            421,1,1,6914,1,1979,1,1443,762,7122,
            637,133,1,1,6914,6925,347,3918,3851,890,
            1859,3550,3026,3093,2992,3500,4744,3540,650,3538,
            4148,3505,6914,6838,6478,6478,6478,6478,6478,6478,
            6478,6845,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,6842,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1150,1,1,154,
            1,1979,1,337,762,7122,637,6914,1,1,
            6914,6925,1735,7250,1423,3690,1859,3550,3026,3093,
            2992,3500,4744,3540,650,3538,4148,3505,6914,6838,
            6478,6478,6478,6478,6478,6478,6478,6845,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,6842,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,91,1,1,6823,1,1979,1,6914,
            762,7122,637,3636,1,1,6914,6925,6914,10517,
            10485,2196,1859,3550,3026,3093,2992,3500,4744,3540,
            650,3538,4148,3505,6914,6838,6478,6478,6478,6478,
            6478,6478,6478,6845,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,6842,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1979,1,157,762,7122,637,1,
            1,1,5884,6925,327,6928,6929,328,1859,3550,
            3026,3093,2992,3500,4744,3540,650,3538,4148,3505,
            6914,6838,6478,6478,6478,6478,6478,6478,6478,6845,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,6842,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,152,1,1,3036,1,1979,
            1,3725,762,7122,637,7309,1,1,3887,6925,
            141,3446,121,406,1859,3550,3026,3093,2992,3500,
            4744,3540,650,3538,4148,3505,6914,6838,6478,6478,
            6478,6478,6478,6478,6478,6845,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,6842,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            6914,1,1,1348,1,1979,1,6914,762,7122,
            637,129,1,1,6914,6925,4423,4490,4423,4490,
            1859,3550,3026,3093,2992,3500,4744,3540,650,3538,
            4148,3505,6914,6838,6478,6478,6478,6478,6478,6478,
            6478,6845,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,6842,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,271,1,1,6851,
            1,1979,1,6914,762,7122,637,6914,1,1,
            4751,6925,6914,3958,1264,6287,1859,3550,3026,3093,
            2992,3500,4744,3540,650,3538,4148,3505,39,6484,
            6481,6073,907,5600,5531,5623,1588,6474,1971,7213,
            7211,7220,7219,7215,7216,7214,7217,7218,7221,7212,
            7208,7287,7288,7202,7209,7205,7181,7207,7206,7203,
            7204,7182,5577,5554,5669,5646,6933,111,5508,7349,
            1863,1998,6935,1930,5829,1996,6936,6934,1857,6930,
            6931,6932,354,603,7350,6629,7351,424,1488,6914,
            6654,6654,263,6650,263,263,263,263,6658,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,323,6513,6513,6914,318,263,118,
            1,6914,6497,6493,1772,6490,6605,811,6605,1588,
            6914,6596,6914,1445,1,1,6647,1,2119,6918,
            137,1929,7363,1,6497,6493,6487,6490,5715,6504,
            263,6501,453,4708,4681,5738,6914,257,345,6497,
            6493,1772,6490,6605,811,6605,1588,7451,7213,7211,
            7220,7219,7215,7216,7214,7217,7218,7221,7212,7208,
            7287,7288,7202,7209,7205,7181,7207,7206,7203,7204,
            7182,126,2994,7386,7387,7388,6914,6654,6654,263,
            6650,263,263,263,263,6730,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            6914,6484,6481,6914,6952,263,3508,1,1,6497,
            6493,6487,6490,6914,6504,4272,6501,6924,6917,6914,
            132,1,1,6647,1,2119,6805,3776,1929,7363,
            1,6497,6493,1772,6490,6914,811,263,1588,452,
            6914,481,1,1,571,1,6632,6923,6632,6924,
            4218,4191,6914,6914,7451,7213,7211,7220,7219,7215,
            7216,7214,7217,7218,7221,7212,7208,7287,7288,7202,
            7209,7205,7181,7207,7206,7203,7204,7182,6109,6923,
            7386,7387,7388,6914,6478,6478,263,6478,263,263,
            263,263,6507,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            9636,1,1,1,1,1,1,6180,33,6914,
            3883,6641,263,6641,1,6641,6914,6641,6922,367,
            6484,6481,1772,907,1,811,258,1588,1,1,
            6475,1,1590,399,39,762,7159,637,6952,367,
            6914,367,6641,6641,6641,6641,253,6641,7208,7287,
            7288,7202,7209,7205,7181,7207,7206,7203,7204,7182,
            6914,7451,6641,381,39,39,4530,6952,367,6641,
            367,155,6914,6641,6914,47,6641,1068,6641,6641,
            6641,6641,6921,6926,403,6497,6493,4299,6490,1,
            811,1,1588,253,6641,6641,399,6641,6641,6641,
            6641,6641,6641,6641,6641,6641,6641,6641,6641,6641,
            6641,6641,6641,6641,6641,6641,6641,6641,6641,6641,
            6641,399,356,6914,1445,6641,6641,6641,6914,1096,
            433,6826,1341,6826,424,6826,495,6826,6914,6484,
            6481,485,907,6925,6829,1445,1588,6914,37,6929,
            6929,6929,6929,6929,1299,6929,6914,6484,6481,6914,
            6952,665,6826,6826,6826,6826,3545,6826,6914,6914,
            6929,6929,6929,6929,6929,6929,6929,6929,6929,6929,
            6929,6929,6826,1445,1427,1442,6914,6484,6481,6826,
            907,6914,6829,6826,1588,2102,6826,6635,6826,6826,
            6826,6826,1,6497,6493,1772,6490,139,811,6929,
            1588,345,927,6929,6826,6826,6929,6826,6826,6826,
            6826,6826,6826,6826,6826,6826,6826,6826,6826,6826,
            6826,6826,6826,6826,6826,6826,6826,6826,6826,6826,
            6826,345,6914,2168,491,6826,6826,6826,6914,6478,
            6478,263,6478,263,263,263,263,263,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,9636,1,1,1,1,
            1,1,1,6497,6493,4299,6490,263,811,1,
            1588,6817,482,39,39,6914,6952,6808,6617,6808,
            36,6885,6882,1,1,6475,1,1590,3407,4357,
            762,7159,637,39,6484,6481,6279,907,5600,5531,
            5623,1588,6914,1860,7213,7211,7220,7219,7215,7216,
            7214,7217,7218,7221,7212,159,7451,1,6799,6799,
            6914,6848,367,1445,367,6914,399,5577,5554,5669,
            5646,6933,477,5508,6820,1863,1998,6935,1930,5829,
            1996,6936,6934,1857,6930,6931,6932,6914,254,6914,
            6478,6478,263,6478,263,263,263,263,263,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,9636,1,1,1,
            1,1,1,6914,6914,2204,6620,39,263,399,
            1,6952,134,39,6914,6484,6481,6952,907,150,
            811,6914,1588,1143,1,1,6475,1,1590,2986,
            6920,762,7159,637,399,2767,3344,4151,2138,2072,
            2006,1940,1874,1808,1742,1676,1610,1544,381,6484,
            6481,4299,907,367,811,367,1588,7451,6914,6478,
            6478,263,6478,263,263,263,263,6721,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,9636,1,1,1,1,
            1,1,135,6919,114,372,145,263,115,1,
            92,1,1,5484,1,6872,3690,6872,130,1445,
            259,3918,3851,1,1,6475,1,1590,7287,7288,
            762,7159,637,494,37,6644,6644,7386,7387,7388,
            6644,254,7208,7287,7288,7202,7209,7205,7181,7207,
            7206,7203,7204,7182,344,6914,7451,6914,6478,6478,
            263,6478,263,263,263,263,6721,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,9636,1,1,1,1,1,
            1,2453,4423,4490,6638,5715,263,3600,1,95,
            39,39,5738,6952,6899,6914,6899,5460,4833,260,
            3958,1264,1,1,6475,1,1590,6914,6914,762,
            7159,637,1574,6914,6928,6929,6914,6928,6929,2406,
            254,7208,7287,7288,7202,7209,7205,7181,7207,7206,
            7203,7204,7182,37,552,7451,6914,6478,6478,263,
            6478,263,263,263,263,6721,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,9636,1,1,1,1,1,1,
            6914,6484,6481,7463,907,263,811,1,1588,38,
            6614,6611,5692,1195,1,6608,6914,1588,261,139,
            6950,1,1,6475,1,1590,6914,6914,762,7159,
            637,6914,934,431,6510,6510,6914,318,465,254,
            7208,7287,7288,7202,7209,7205,7181,7207,7206,7203,
            7204,7182,728,6914,7451,6914,6478,6478,263,6478,
            263,263,263,263,263,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,9636,1,1,1,1,1,1,2740,
            318,6914,6928,6929,263,117,1,811,116,1588,
            5484,3673,7352,5484,3883,218,6914,6914,6914,4759,
            1,1,6475,1,1590,6920,6922,762,7159,637,
            3407,4357,2693,2646,2599,2552,2505,2458,2411,2364,
            2317,2270,337,1,6497,6493,1772,6490,6914,811,
            6914,1588,7250,7451,6914,6478,6478,263,6478,263,
            263,263,263,263,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,9636,1,1,1,1,1,1,6919,3135,
            6921,6914,113,263,4894,1,156,572,112,144,
            6914,892,4423,4490,5460,4833,120,5460,4833,1,
            1,6475,1,1590,2994,7406,762,7159,637,7208,
            7287,7288,7202,7209,7205,7181,7207,7206,7203,7204,
            7182,1,6497,6493,4299,6490,6911,811,6914,1588,
            4708,4681,7451,6914,6478,6478,263,6478,263,263,
            263,263,263,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            9636,1,1,1,1,1,1,384,6914,6928,
            6929,6914,263,5715,1,4423,4490,6926,6914,5715,
            5738,3545,1445,6914,6914,1,5738,486,1,1,
            6475,1,1590,6920,6626,762,7159,637,1,6497,
            6493,3297,907,5600,5531,5623,1588,146,6661,6688,
            6694,6667,6670,6682,6679,6685,6676,6673,6664,6691,
            442,7451,1,6914,6602,6599,6914,1,1445,6724,
            4530,194,5577,5554,5669,5646,6933,6925,5508,148,
            1863,1998,6935,1930,5829,1996,6936,6934,1857,6930,
            6931,6932,5973,476,6925,2061,6919,6914,1488,6727,
            6320,4116,6914,553,39,39,39,6484,6481,6073,
            907,5600,5531,5623,1588,6896,1860,7213,7211,7220,
            7219,7215,7216,7214,7217,7218,7221,7212,1445,5692,
            1195,7392,577,4116,194,577,4089,1115,6914,6914,
            5577,5554,5669,5646,6933,398,5508,6924,1863,1998,
            6935,1930,5829,1996,6936,6934,1857,6930,6931,6932,
            6914,142,37,6644,6644,1,1488,367,4089,1115,
            326,1197,1197,320,6802,6712,119,6923,6914,6921,
            39,6484,6481,6073,907,5600,5531,5623,1588,6709,
            1860,7213,7211,7220,7219,7215,7216,7214,7217,7218,
            7221,7212,37,6644,6644,404,744,7386,7387,7388,
            4708,4681,326,3372,5577,5554,5669,5646,6933,6950,
            5508,125,1863,1998,6935,1930,5829,1996,6936,6934,
            1857,6930,6931,6932,6914,6700,6697,6914,6921,545,
            1488,7233,6914,383,543,190,2974,4423,4490,6712,
            174,6484,6481,6073,907,5600,5531,5623,1588,6950,
            1860,7213,7211,7220,7219,7215,7216,7214,7217,7218,
            7221,7212,1,1,1,1395,6914,457,158,6914,
            10052,6924,224,591,5577,5554,5669,5646,6933,29,
            5508,6950,1863,1998,6935,1930,5829,1996,6936,6934,
            1857,6930,6931,6932,1445,29,8,4423,4490,5874,
            1488,6923,224,2787,5883,6905,39,39,1,6497,
            6493,3297,907,5600,5531,5623,1588,147,6661,6688,
            6694,6667,6670,6682,6679,6685,6676,6673,6664,6691,
            1,3587,6914,6623,3588,6914,591,3192,411,196,
            3592,138,5577,5554,5669,5646,6933,6914,5508,1427,
            1863,1998,6935,1930,5829,1996,6936,6934,1857,6930,
            6931,6932,6914,124,3446,6914,461,123,1488,6905,
            6914,4116,6914,6914,39,39,39,6484,6481,6073,
            907,5600,5531,5623,1588,6709,1860,7213,7211,7220,
            7219,7215,7216,7214,7217,7218,7221,7212,1,463,
            3589,2077,196,7414,7420,7418,4089,1115,6914,122,
            5577,5554,5669,5646,6933,6914,5508,1662,1863,1998,
            6935,1930,5829,1996,6936,6934,1857,6930,6931,6932,
            3591,6914,7412,7413,7443,7444,1488,3508,7421,1,
            6914,2834,4530,4861,4923,6712,2406,573,6817,4423,
            4490,3592,7423,4423,4490,43,6706,6706,6914,625,
            6914,4358,2349,7424,1385,1425,7445,3481,7422,7208,
            7287,7288,7202,7209,7205,7181,7207,7206,7203,7204,
            7182,584,6914,6914,7434,7433,2900,7439,7440,7446,
            7437,7438,7417,7419,7441,4423,4490,7415,7416,7442,
            1445,7427,7428,7429,7425,7426,7435,7436,7431,7430,
            7432,6820,6703,6914,1427,7447,39,6484,6481,6073,
            907,5600,5531,5623,1588,6918,1860,7213,7211,7220,
            7219,7215,7216,7214,7217,7218,7221,7212,6914,45,
            6835,6835,6914,10808,10808,6914,11354,9100,6914,6914,
            5577,5554,5669,5646,6933,6914,5508,432,1863,1998,
            6935,1930,5829,1996,6936,6934,1857,6930,6931,6932,
            1,6497,6493,6796,6490,6745,6757,6748,6501,6914,
            6661,6688,6694,6667,6670,6682,6679,6685,6676,6673,
            6664,6691,4116,48,1,6914,6832,6929,136,6950,
            6914,547,6950,4324,6742,6739,6754,6751,6769,1143,
            6736,1427,6784,6793,6763,6787,6733,6790,6760,6766,
            6781,6778,6775,6772,1,48,6914,4089,1115,6928,
            1734,6914,6914,6920,6917,4369,6799,6799,39,6484,
            6481,6073,907,5600,5531,5623,1588,6929,1860,7213,
            7211,7220,7219,7215,7216,7214,7217,7218,7221,7212,
            1,6914,6914,4530,4533,4558,4985,1,6914,377,
            2947,2037,5577,5554,5669,5646,6933,6715,5508,6928,
            1863,1998,6935,1930,5829,1996,6936,6934,1857,6930,
            6931,6932,6914,3600,6914,4361,6919,4056,1488,39,
            6484,6481,6073,907,5600,5531,5623,1588,6718,1860,
            7213,7211,7220,7219,7215,7216,7214,7217,7218,7221,
            7212,1445,1786,6914,3220,377,4757,227,377,128,
            6914,6914,377,5577,5554,5669,5646,6933,6914,5508,
            6914,1863,1998,6935,1930,5829,1996,6936,6934,1857,
            6930,6931,6932,6914,100,103,4738,595,5116,6914,
            2394,39,6484,6481,3297,907,5600,5531,5623,1588,
            99,1860,7213,7211,7220,7219,7215,7216,7214,7217,
            7218,7221,7212,4272,1918,1984,6914,6914,6914,6256,
            127,37,6644,6644,6866,5577,5554,5669,5646,6933,
            6914,5508,6879,1863,1998,6935,1930,5829,1996,6936,
            6934,1857,6930,6931,6932,4620,6914,3679,4218,4191,
            6914,1488,39,6484,6481,3297,907,5600,5531,5623,
            1588,3234,1860,7213,7211,7220,7219,7215,7216,7214,
            7217,7218,7221,7212,4272,6914,6914,6914,2500,6914,
            6892,6888,6914,6914,4887,6869,5577,5554,5669,5646,
            6933,1712,5508,583,1863,1998,6935,1930,5829,1996,
            6936,6934,1857,6930,6931,6932,6914,6914,6914,4218,
            4191,1747,1488,39,6484,6481,6073,907,5600,5531,
            5623,1588,6914,1860,7213,7211,7220,7219,7215,7216,
            7214,7217,7218,7221,7212,75,6950,2885,3374,6914,
            6914,313,1,73,6908,6914,2,5577,5554,5669,
            5646,6933,6715,5508,6914,1863,1998,6935,1930,5829,
            1996,6936,6934,1857,6930,6931,6932,6914,6914,6914,
            6914,6976,6977,1488,39,6484,6481,6073,907,5600,
            5531,5623,1588,6718,1860,7213,7211,7220,7219,7215,
            7216,7214,7217,7218,7221,7212,4149,6902,6914,3220,
            37,6914,6914,6914,6914,6914,3592,6914,5577,5554,
            5669,5646,6933,6914,5508,6914,1863,1998,6935,1930,
            5829,1996,6936,6934,1857,6930,6931,6932,39,6484,
            6481,3297,907,5600,5531,5623,1588,6914,1860,7213,
            7211,7220,7219,7215,7216,7214,7217,7218,7221,7212,
            6914,6914,871,6914,1047,6914,6914,6914,6914,6914,
            6914,6914,5577,5554,5669,5646,6933,6914,5508,6914,
            1863,1998,6935,1930,5829,1996,6936,6934,1857,6930,
            6931,6932,39,6484,6481,3297,907,5600,5531,5623,
            1588,6914,1860,7213,7211,7220,7219,7215,7216,7214,
            7217,7218,7221,7212,6914,6914,6914,6914,6914,6914,
            6914,6914,6914,6914,6914,6914,5577,5554,5669,5646,
            6933,6914,5508,6914,1863,1998,6935,1930,5829,1996,
            6936,6934,1857,6930,6931,6932,39,6484,6481,6073,
            907,5600,5531,5623,1588,6914,1860,7213,7211,7220,
            7219,7215,7216,7214,7217,7218,7221,7212,6914,6914,
            6914,6914,6914,6914,6914,6914,6914,6914,6914,6914,
            5577,5554,5669,5646,6933,6914,5508,6914,1863,1998,
            6935,1930,5829,1996,6936,6934,1857,6930,6931,6932,
            6914,6484,6481,6914,6952,6914,6914,6914,6914,6914,
            641,7213,7211,7220,7219,7215,7216,7214,7217,7218,
            7221,7212,7208,7287,7288,7202,7209,7205,7181,7207,
            7206,7203,7204,7182,6914,6914,6914,6914,6914,6914,
            6914,7349,6914,6914,6914,6914,6914,6914,6914,275,
            6589,6585,6914,6593,6914,603,7350,6914,7351,641,
            6576,6582,6555,6558,6570,6567,6573,6564,6561,6552,
            6579,6531,6525,6522,6549,6528,6540,6519,6534,6537,
            6546,6543,6516,6914,6914,6914,6914,6914,6914,6914,
            7349,6914,6914,6914,6914,6914,6914,6914,6914,6928,
            6929,6914,6914,6914,603,7350,6914,7351,1796,7213,
            7211,7220,7219,7215,7216,7214,7217,7218,7221,7212,
            7208,7287,7288,7202,7209,7205,7181,7207,7206,7203,
            7204,7182,6914,6914,6914,6914,6914,6914,6914,7349,
            6914,6914,6914,6914,6914,6914,6914,275,6814,6811,
            6914,6914,6914,603,7350,6914,7351,1796,6576,6582,
            6555,6558,6570,6567,6573,6564,6561,6552,6579,6531,
            6525,6522,6549,6528,6540,6519,6534,6537,6546,6543,
            6516,6914,6914,6914,6914,6914,6914,6914,7349,29,
            424,424,6857,424,6857,424,6857,424,6857,6914,
            6914,6914,603,7350,6914,7351,6914,574,6914,6914,
            6914,424,424,424,424,424,424,424,424,424,
            424,424,424,6914,6914,6914,6914,6914,6857,7208,
            7287,7288,7202,7209,7205,7181,7207,7206,7203,7204,
            7182,6914,6914,6623,6914,6914,6914,6914,6914,6914,
            6857,32,425,425,6854,425,6854,425,6854,425,
            6854,6857,6914,6914,6914,6914,6914,6914,6914,6914,
            6914,6914,6914,425,425,425,425,425,425,425,
            425,425,425,425,425,6914,6914,6914,6914,6914,
            6854,6914,6914,6914,6914,6914,6914,6914,6914,6914,
            6914,6914,37,6928,6928,6928,6928,6928,6914,6928,
            6914,6914,6854,6914,575,6914,6914,6914,6914,6914,
            6914,6914,6914,6854,6928,6928,6928,6928,6928,6928,
            6928,6928,6928,6928,6928,6928,7208,7287,7288,7202,
            7209,7205,7181,7207,7206,7203,7204,7182,6914,6914,
            6914,6914,6914,6914,6914,6914,6914,6914,6914,6914,
            6914,6914,6914,6928,6914,6914,6914,6928,6914,6914,
            6928
        };
    };
    public final static char termAction[] = TermAction.termAction;
    @Override
    public final int termAction(int index) { return termAction[index]; }

    public interface Asb {
        public final static char asb[] = {0,
            946,7,1159,258,563,419,53,1074,61,66,
            1120,519,330,61,997,1008,68,1008,63,1008,
            1,1008,992,1008,519,520,115,419,514,158,
            678,678,523,520,678,520,258,751,1072,9,
            68,68,273,520,331,112,165,65,987,66,
            519,277,520,520,51,212,432,432,270,260,
            260,517,267,269,514,520,427,112,277,277,
            675,376,112,678,678,751,678,520,49,861,
            181,1122,1122,1121,1121,68,519,520,331,270,
            165,520,432,595,430,51,68,633,520,277,
            51,520,1113,432,68,519,336,514,520,481,
            121,514,1113,673,671,277,277,517,376,376,
            331,861,181,1121,1121,1121,520,270,270,724,
            520,165,853,66,751,329,843,165,432,431,
            432,432,51,633,633,520,1072,564,250,258,
            751,751,751,751,519,258,160,482,482,482,
            482,482,482,482,482,482,680,686,691,688,
            465,1049,1047,1054,1052,1056,1055,1057,379,1058,
            1071,520,212,520,68,445,639,520,258,376,
            465,693,698,695,701,700,703,702,718,428,
            112,481,724,68,704,428,671,1072,1072,675,
            112,656,827,838,1071,751,55,55,724,724,
            1121,520,49,845,432,432,432,432,520,633,
            723,727,723,600,611,611,611,611,557,519,
            517,857,835,834,465,563,563,563,563,520,
            71,904,562,49,465,680,48,48,71,481,
            482,482,482,482,482,482,482,112,112,248,
            465,732,482,482,482,482,482,482,482,482,
            482,482,482,481,481,481,481,481,481,481,
            481,481,481,481,481,482,465,1113,643,446,
            519,520,71,482,482,482,482,482,482,482,
            482,482,482,481,482,737,724,121,481,481,
            481,481,481,481,481,481,481,481,481,671,
            671,645,481,836,836,855,517,753,181,1122,
            181,1070,1070,724,270,331,269,482,853,268,
            744,432,432,896,723,724,482,520,520,248,
            112,859,861,112,112,1072,1072,1072,1072,51,
            112,376,562,481,112,330,332,330,112,376,
            688,688,686,686,686,482,786,1014,1014,519,
            160,482,1047,1047,1047,691,691,1052,1049,1049,
            1055,1054,1056,853,1057,643,445,853,482,853,
            270,444,258,258,258,446,258,520,386,270,
            270,520,68,112,695,695,693,693,693,693,
            700,698,702,701,853,703,481,121,671,670,
            645,481,481,859,827,181,563,563,270,845,
            482,482,639,209,897,520,724,51,112,861,
            258,258,258,258,520,520,482,563,684,214,
            112,520,332,49,520,49,822,481,436,258,
            436,446,853,446,465,465,463,444,465,270,
            270,668,443,481,723,671,647,1071,896,520,
            519,519,520,520,660,112,481,481,481,481,
            258,258,112,684,517,212,520,331,51,331,
            753,446,112,514,112,463,419,258,112,643,
            722,120,647,593,520,520,520,660,660,112,
            112,112,112,71,71,684,685,684,481,214,
            334,680,212,520,112,112,810,446,668,446,
            270,419,481,446,443,722,722,258,55,520,
            520,652,660,112,112,684,71,482,376,334,
            797,68,68,936,481,444,71,270,112,862,
            1070,652,652,685,112,376,446,112,270,839,
            330,652,446,563
        };
    };
    public final static char asb[] = Asb.asb;
    @Override
    public final int asb(int index) { return asb[index]; }

    public interface Asr {
        public final static byte asr[] = {0,
            4,9,69,1,2,0,120,0,64,25,
            11,12,41,23,13,55,26,88,27,14,
            28,29,15,16,30,59,31,17,18,32,
            56,33,10,58,19,62,22,20,24,21,
            3,7,5,39,63,69,9,4,8,6,
            1,2,57,0,65,70,68,1,2,0,
            38,0,57,4,71,1,2,69,9,0,
            11,12,42,66,13,43,44,14,15,16,
            67,8,45,17,18,46,47,48,60,49,
            50,10,19,20,21,51,52,53,38,1,
            2,3,36,37,7,5,34,35,6,40,
            4,72,9,0,9,71,69,74,0,73,
            60,36,37,7,5,34,35,40,46,3,
            4,51,52,53,38,49,44,48,12,21,
            11,17,15,16,18,19,14,13,20,10,
            43,47,45,42,50,69,9,8,6,1,
            2,67,66,0,88,59,8,114,115,116,
            62,9,3,7,5,6,71,73,39,63,
            25,11,12,41,23,13,55,26,27,14,
            28,29,15,16,30,31,17,18,32,56,
            57,33,10,58,19,20,24,21,1,2,
            22,4,0,98,91,34,35,99,100,86,
            87,54,89,90,92,93,94,95,96,101,
            102,71,97,70,103,104,105,106,107,108,
            109,110,111,112,118,73,39,9,72,65,
            68,1,2,7,5,4,61,3,0,74,
            65,71,97,72,69,61,3,70,68,39,
            9,0,9,69,70,0,25,11,12,41,
            23,42,66,13,43,55,26,27,44,14,
            28,29,15,16,30,67,31,45,17,18,
            46,32,47,56,48,60,49,33,50,58,
            19,22,20,24,21,51,52,53,38,3,
            36,37,7,5,34,35,40,65,10,4,
            8,1,2,6,0,66,67,3,10,43,
            47,45,42,50,12,21,11,17,15,16,
            18,19,14,13,20,51,52,53,38,49,
            44,48,6,8,4,36,37,7,5,34,
            35,40,46,1,2,118,9,0,65,71,
            97,68,118,72,73,11,12,42,66,13,
            43,44,14,15,16,67,45,17,18,46,
            47,48,60,49,50,10,19,20,21,51,
            52,53,38,36,37,34,35,40,9,39,
            6,8,1,2,4,3,7,5,0,4,
            54,9,71,69,0,88,114,115,116,57,
            71,120,113,121,73,63,74,62,59,64,
            76,78,84,82,75,80,81,83,85,69,
            77,79,39,9,23,41,55,26,27,28,
            29,30,25,31,32,56,33,58,22,24,
            60,66,67,10,43,47,45,42,50,12,
            21,11,17,15,16,18,19,14,13,20,
            51,52,53,38,49,44,48,36,37,34,
            35,40,46,6,8,3,7,5,4,1,
            2,0,67,66,34,35,99,100,94,95,
            6,40,70,54,106,107,103,104,105,111,
            110,112,87,86,108,109,92,93,89,90,
            96,101,36,37,91,117,61,7,5,65,
            68,3,4,10,1,2,55,56,58,12,
            21,11,17,15,16,18,19,14,13,20,
            25,31,32,27,30,29,22,26,23,24,
            28,33,41,0,4,9,71,69,0,12,
            21,11,17,15,16,18,19,14,13,20,
            1,2,61,3,7,5,65,4,68,25,
            31,32,27,30,29,22,26,23,24,28,
            33,0,1,2,9,68,73,0,9,69,
            68,0,113,0,23,24,74,3,71,39,
            69,60,65,70,68,9,72,97,0,23,
            60,24,9,65,97,68,72,70,0,60,
            23,24,8,6,1,2,4,74,69,119,
            117,36,37,61,3,98,91,5,99,100,
            34,35,87,86,54,89,90,92,93,7,
            94,95,96,65,97,72,70,103,104,105,
            106,107,108,109,110,111,112,71,118,101,
            102,39,68,73,9,0,9,68,73,70,
            0,54,65,89,90,0,9,71,118,72,
            39,68,0,71,9,61,3,70,68,39,
            54,0,25,11,12,41,23,13,55,26,
            27,14,28,29,15,16,30,31,17,18,
            32,56,33,10,58,19,22,20,24,21,
            1,2,4,97,0,11,12,13,14,15,
            16,17,18,19,20,21,25,23,26,27,
            28,29,30,31,32,33,22,24,39,9,
            72,8,1,2,61,3,7,5,6,4,
            0,72,9,87,86,0,7,5,8,6,
            4,1,2,3,61,65,70,97,72,9,
            68,0,39,9,3,8,6,7,5,4,
            1,2,71,0,6,8,3,61,5,7,
            97,25,11,12,41,23,13,55,26,27,
            14,28,29,15,16,30,31,17,18,32,
            56,33,10,58,19,22,20,24,21,1,
            2,4,72,9,0,22,1,2,4,114,
            115,116,0,66,67,36,37,34,35,40,
            46,51,52,53,38,49,44,48,12,21,
            11,17,15,16,18,19,14,13,20,10,
            43,47,45,42,50,7,5,3,61,8,
            6,4,1,2,0,9,3,7,5,6,
            8,39,25,11,12,41,23,13,55,26,
            14,28,29,15,16,30,31,17,18,32,
            56,33,10,58,19,22,20,24,21,120,
            63,59,27,88,64,62,57,1,2,4,
            0,10,55,41,56,58,12,21,11,17,
            15,16,18,19,14,13,20,74,71,97,
            118,73,69,8,31,32,33,22,24,1,
            2,30,29,28,27,26,6,4,23,25,
            119,98,117,91,36,37,34,35,99,100,
            9,61,3,5,72,39,87,86,54,89,
            90,92,93,7,94,95,96,101,102,103,
            104,105,106,107,108,109,110,111,112,70,
            68,65,0,41,23,13,55,26,14,28,
            29,15,16,30,31,17,18,32,56,33,
            10,58,19,22,20,24,21,12,11,25,
            9,3,7,39,62,59,64,88,27,63,
            54,4,8,5,6,1,2,57,0,120,
            73,41,23,13,55,26,14,28,29,15,
            16,30,31,17,18,32,56,33,58,19,
            22,20,24,21,12,11,25,9,3,7,
            5,39,63,27,88,64,62,57,8,1,
            2,6,4,10,59,0
        };
    };
    public final static byte asr[] = Asr.asr;
    @Override
    public final int asr(int index) { return asr[index]; }

    public interface Nasb {
        public final static char nasb[] = {0,
            270,12,41,12,5,166,12,284,12,117,
            284,80,80,12,281,282,221,282,49,282,
            13,282,275,12,10,173,188,156,183,240,
            12,12,113,267,12,173,12,12,12,220,
            221,118,12,227,227,97,188,43,80,70,
            80,188,173,11,12,12,188,68,178,85,
            85,161,16,12,236,173,12,97,188,188,
            34,104,97,12,12,12,12,11,22,188,
            188,284,284,188,188,221,80,135,240,178,
            297,44,91,91,12,227,221,188,227,24,
            123,44,93,68,120,64,99,236,173,61,
            74,183,131,163,163,24,24,161,104,104,
            240,208,208,270,270,188,227,178,178,109,
            173,178,12,134,12,41,165,297,91,91,
            188,188,123,188,268,11,12,253,212,12,
            12,12,12,12,80,12,173,76,76,263,
            76,76,76,76,76,76,12,12,12,12,
            143,12,12,12,12,12,12,12,76,12,
            12,44,12,11,120,108,12,227,12,104,
            148,12,12,12,12,12,12,12,12,163,
            97,76,188,221,12,12,188,12,12,192,
            97,12,181,12,12,12,32,32,109,109,
            270,135,22,156,188,188,39,39,44,268,
            37,12,12,281,282,282,282,282,289,10,
            161,211,85,85,148,305,305,305,305,173,
            58,76,89,22,148,12,52,52,58,149,
            76,76,76,76,76,76,76,97,97,212,
            1,12,76,76,76,76,76,76,76,76,
            76,76,76,76,76,76,76,76,76,76,
            76,76,76,76,149,76,24,93,188,199,
            64,11,58,76,76,76,76,76,76,76,
            76,76,76,149,76,12,109,188,76,76,
            76,76,76,76,76,76,76,76,76,163,
            141,188,76,12,12,180,161,208,208,284,
            188,12,12,109,178,240,178,76,12,137,
            12,39,39,230,37,109,76,268,173,190,
            97,205,188,97,97,12,12,12,12,21,
            97,104,305,61,97,239,173,239,97,104,
            12,12,12,12,12,76,12,12,12,10,
            173,76,12,12,12,12,12,12,12,12,
            12,12,12,12,12,47,216,12,76,12,
            178,12,12,12,12,217,12,268,176,178,
            178,268,126,97,12,12,12,12,12,12,
            12,12,12,12,12,12,76,74,188,141,
            141,76,76,205,234,208,305,305,178,183,
            76,76,12,80,139,227,109,123,97,208,
            12,12,12,12,44,11,76,305,188,82,
            97,173,260,22,173,22,97,76,111,12,
            12,217,12,217,223,223,244,12,223,178,
            178,12,188,76,109,141,188,12,152,227,
            80,80,11,44,188,97,149,149,149,149,
            12,12,97,18,192,12,267,44,20,44,
            305,217,97,183,97,249,188,12,97,47,
            106,73,87,12,11,227,227,141,188,97,
            97,97,97,58,58,188,129,12,149,192,
            261,12,12,44,97,97,188,217,12,217,
            178,183,149,217,111,106,12,12,32,11,
            11,188,141,97,97,18,58,76,104,261,
            12,126,126,181,76,12,196,178,97,304,
            12,87,188,129,97,104,217,97,178,97,
            239,87,217,305
        };
    };
    public final static char nasb[] = Nasb.nasb;
    @Override
    public final int nasb(int index) { return nasb[index]; }

    public interface Nasr {
        public final static char nasr[] = {0,
            3,13,10,9,137,136,113,135,134,4,
            2,0,166,200,0,201,0,161,0,2,
            154,75,0,4,10,9,2,13,129,5,
            0,123,0,5,212,0,167,0,125,0,
            170,0,44,2,3,0,175,0,166,205,
            0,4,2,9,10,157,0,5,105,0,
            5,28,0,186,4,185,0,173,0,42,
            1,0,81,148,42,13,2,9,10,4,
            0,5,194,0,80,0,144,0,192,0,
            124,0,75,156,155,0,30,0,13,2,
            9,10,4,94,0,176,0,5,81,0,
            131,0,5,52,213,0,1,140,0,42,
            174,0,2,75,0,42,66,0,159,0,
            75,59,0,140,119,0,208,0,210,0,
            51,0,13,2,9,10,4,52,5,37,
            0,4,115,182,0,5,10,9,2,78,
            4,98,59,0,39,4,2,9,10,5,
            172,0,2,44,0,5,37,39,0,30,
            101,100,78,4,2,9,10,5,0,101,
            100,59,4,68,0,5,195,0,5,49,
            42,37,196,0,59,4,98,27,5,0,
            30,100,101,5,0,81,37,49,82,5,
            42,0,5,52,117,0,2,67,0,4,
            115,209,0,101,100,59,78,68,4,10,
            9,2,0,37,5,27,198,0,52,5,
            197,0,137,214,136,113,135,134,0,2,
            132,0,4,10,9,13,3,1,0,118,
            92,49,5,0,2,4,113,110,111,112,
            13,69,0,5,49,92,95,0,113,69,
            13,110,111,112,190,0,5,49,92,115,
            47,4,0,30,5,52,0
        };
    };
    public final static char nasr[] = Nasr.nasr;
    @Override
    public final int nasr(int index) { return nasr[index]; }

    public interface TerminalIndex {
        public final static char terminalIndex[] = {0,
            113,114,2,31,10,13,9,79,115,100,
            48,52,60,68,74,75,86,87,102,105,
            107,104,54,106,47,64,66,70,73,76,
            83,89,98,11,12,7,8,112,120,14,
            53,55,61,67,84,88,90,94,97,99,
            109,110,111,19,63,91,93,101,77,95,
            1,103,122,46,20,58,78,44,121,33,
            30,118,119,96,108,49,50,56,57,59,
            69,71,72,85,92,17,18,65,21,22,
            6,23,24,25,26,27,32,4,15,16,
            28,29,34,35,36,37,38,39,40,41,
            42,43,51,80,81,82,5,117,3,123,
            62,116
        };
    };
    public final static char terminalIndex[] = TerminalIndex.terminalIndex;
    @Override
    public final int terminalIndex(int index) { return terminalIndex[index]; }

    public interface NonterminalIndex {
        public final static char nonterminalIndex[] = {0,
            129,134,135,0,0,133,0,0,236,242,
            132,0,142,0,131,0,0,141,147,0,
            0,148,157,158,159,160,187,150,0,125,
            161,140,162,163,164,165,130,166,127,167,
            0,128,137,136,169,168,184,0,0,170,
            194,151,171,0,0,0,0,0,0,172,
            173,174,175,0,176,179,0,154,193,0,
            0,0,211,0,0,144,208,212,0,213,
            126,178,0,0,0,0,0,0,0,0,
            0,0,182,124,185,0,0,209,215,216,
            217,0,219,156,0,145,0,0,214,196,
            197,198,200,226,227,0,181,186,203,0,
            0,218,0,0,0,0,247,0,250,0,
            251,146,188,189,190,191,195,199,202,0,
            205,0,206,0,221,224,0,0,0,245,
            0,246,0,0,138,139,143,0,0,153,
            155,0,177,0,192,0,0,0,201,0,
            204,210,0,222,223,0,0,228,231,0,
            233,235,0,239,240,241,244,0,0,248,
            0,0,149,152,0,180,0,183,0,0,
            207,220,225,0,0,229,230,232,234,0,
            237,238,243,249,252,253,0,0,0,0,
            0,0,0,0
        };
    };
    public final static char nonterminalIndex[] = NonterminalIndex.nonterminalIndex;
    @Override
    public final int nonterminalIndex(int index) { return nonterminalIndex[index]; }

    public interface ScopePrefix {
        public final static char scopePrefix[] = {
            172,324,608,627,317,332,559,575,586,597,
            372,280,294,311,344,55,305,392,430,180,
            616,502,20,33,64,84,93,98,103,143,
            208,339,350,20,467,157,286,300,530,40,
            157,382,20,635,40,230,259,1,14,27,
            74,89,119,27,361,365,448,495,524,551,
            555,645,649,653,110,7,110,410,426,439,
            460,479,543,129,129,245,439,566,582,593,
            604,220,513,69,69,169,235,238,69,254,
            275,238,238,69,369,492,499,169,69,668,
            123,355,414,454,486,472,69,355,401,190,
            117,452,657,664,657,664,78,420,150,117,
            117,264
        };
    };
    public final static char scopePrefix[] = ScopePrefix.scopePrefix;
    @Override
    public final int scopePrefix(int index) { return scopePrefix[index]; }

    public interface ScopeSuffix {
        public final static char scopeSuffix[] = {
            18,148,5,5,148,148,5,5,5,5,
            379,148,108,148,25,61,291,398,436,186,
            80,508,25,38,38,38,72,72,108,148,
            213,31,31,25,5,162,291,114,535,51,
            165,387,622,640,45,224,224,5,18,31,
            5,72,108,31,108,108,148,257,5,5,
            5,5,5,257,666,11,114,379,379,379,
            464,483,535,133,138,249,443,570,570,570,
            570,224,517,72,72,5,5,241,243,257,
            5,278,278,243,108,5,257,5,528,5,
            126,358,417,457,489,475,547,538,404,193,
            108,108,659,659,661,661,80,422,152,215,
            200,266
        };
    };
    public final static char scopeSuffix[] = ScopeSuffix.scopeSuffix;
    @Override
    public final int scopeSuffix(int index) { return scopeSuffix[index]; }

    public interface ScopeLhs {
        public final static char scopeLhs[] = {
            47,112,18,18,91,112,18,18,18,18,
            85,97,48,91,111,89,57,85,84,47,
            18,20,190,3,7,8,182,182,178,110,
            47,111,111,138,45,147,58,48,157,151,
            147,85,18,18,151,102,72,153,88,190,
            185,182,178,138,199,55,66,161,19,18,
            18,18,18,18,12,131,178,85,84,84,
            64,41,157,114,114,68,84,18,18,18,
            18,102,20,186,182,201,100,109,74,80,
            73,172,93,138,86,162,161,192,157,17,
            178,138,117,83,22,45,157,157,85,47,
            178,79,155,44,155,44,185,117,110,47,
            47,72
        };
    };
    public final static char scopeLhs[] = ScopeLhs.scopeLhs;
    @Override
    public final int scopeLhs(int index) { return scopeLhs[index]; }

    public interface ScopeLa {
        public final static byte scopeLa[] = {
            113,73,72,72,73,73,72,72,72,72,
            72,73,39,73,1,65,1,72,121,69,
            3,72,1,65,65,65,1,1,39,73,
            69,1,1,1,72,73,1,1,4,65,
            68,39,1,1,65,72,72,72,113,1,
            72,1,39,1,39,39,73,118,72,72,
            72,72,72,118,1,72,1,72,72,72,
            71,71,4,1,1,5,72,65,65,65,
            65,72,3,1,1,72,72,3,1,118,
            72,1,1,1,39,72,118,72,6,72,
            1,57,70,71,72,65,1,57,75,74,
            39,39,4,4,4,4,3,1,69,1,
            1,3
        };
    };
    public final static byte scopeLa[] = ScopeLa.scopeLa;
    @Override
    public final int scopeLa(int index) { return scopeLa[index]; }

    public interface ScopeStateSet {
        public final static char scopeStateSet[] = {
            342,336,245,245,365,336,245,245,245,245,
            353,367,342,365,336,365,344,353,353,342,
            245,245,42,175,221,221,21,21,97,336,
            342,336,336,338,72,332,344,342,37,45,
            332,353,245,245,45,106,156,4,353,42,
            49,21,97,338,35,344,52,8,245,245,
            245,245,245,245,225,16,97,353,353,353,
            80,305,37,336,336,115,353,245,245,245,
            245,106,245,49,21,100,106,108,156,102,
            156,172,161,338,353,1,8,40,37,245,
            97,338,11,353,246,72,37,37,353,342,
            97,24,69,131,69,131,49,11,336,342,
            342,156
        };
    };
    public final static char scopeStateSet[] = ScopeStateSet.scopeStateSet;
    @Override
    public final int scopeStateSet(int index) { return scopeStateSet[index]; }

    public interface ScopeRhs {
        public final static char scopeRhs[] = {0,
            338,3,60,0,125,0,337,3,113,0,
            125,179,0,127,188,74,0,223,0,197,
            166,126,10,0,135,0,166,126,10,0,
            134,0,271,127,54,124,0,20,0,309,
            127,54,57,0,20,53,0,33,131,0,
            20,53,0,0,309,127,54,57,214,0,
            20,185,0,271,127,54,132,0,189,126,
            0,140,0,227,3,308,0,308,0,2,
            0,125,0,271,127,54,131,0,189,126,
            237,0,189,126,22,237,0,189,126,332,
            22,0,128,197,166,126,0,127,0,197,
            166,126,0,133,127,0,171,0,328,127,
            171,0,127,171,0,229,127,0,166,327,
            235,0,135,0,0,0,0,134,0,0,
            0,0,326,127,164,236,0,126,0,236,
            0,128,0,0,126,0,325,127,164,270,
            0,126,0,0,44,126,0,0,150,3,
            0,127,296,295,127,74,294,171,0,295,
            127,74,294,171,0,222,0,223,0,294,
            171,0,96,0,0,222,0,223,0,210,
            96,0,0,222,0,223,0,295,127,294,
            171,0,222,0,210,0,0,222,0,242,
            127,3,0,125,0,0,0,0,0,242,
            127,3,222,0,231,3,0,220,127,0,
            215,0,145,0,181,166,126,0,10,0,
            0,0,0,226,61,0,124,0,242,127,
            3,195,0,195,0,2,0,0,125,0,
            0,0,0,0,215,3,0,208,0,238,
            127,164,38,27,0,189,126,59,62,0,
            203,127,0,128,189,126,292,62,0,189,
            126,292,62,0,189,126,70,123,59,0,
            238,127,164,262,59,0,238,127,164,262,
            241,59,0,289,290,127,164,123,322,55,
            0,289,290,127,164,322,55,0,189,126,
            288,55,0,197,189,126,288,235,0,189,
            126,288,235,0,166,126,0,93,135,0,
            286,127,149,0,286,127,171,0,159,84,
            0,317,161,319,320,3,81,0,125,178,
            0,319,320,3,81,0,127,0,125,178,
            0,159,3,75,204,80,0,125,127,0,
            204,80,0,108,2,130,125,127,0,239,
            3,75,0,215,174,0,33,168,0,174,
            0,182,33,168,0,239,3,85,0,204,
            152,239,3,83,0,62,178,0,239,3,
            83,0,125,178,62,178,0,318,127,164,
            0,159,0,226,77,0,30,178,0,159,
            102,185,0,30,176,0,148,65,167,3,
            0,167,3,0,20,160,125,0,159,102,
            162,0,30,168,0,198,3,0,125,148,
            0,227,3,0,226,61,283,0,159,61,
            0,198,3,314,67,126,0,125,0,0,
            0,0,314,67,126,0,2,144,125,0,
            0,0,0,198,3,46,0,146,0,125,
            57,166,126,0,31,146,0,93,135,31,
            146,0,228,189,126,0,145,31,146,0,
            198,3,50,0,159,3,50,0,159,3,
            65,198,54,42,0,198,54,42,0,20,
            2,130,125,0,159,3,65,198,54,45,
            0,198,54,45,0,159,3,65,198,54,
            47,0,198,54,47,0,159,3,65,198,
            54,43,0,198,54,43,0,227,3,125,
            197,166,126,10,0,125,197,166,126,10,
            0,135,2,0,125,0,227,3,124,276,
            166,126,10,0,276,166,126,10,0,134,
            2,0,125,0,227,3,135,0,227,3,
            140,0,159,61,140,0,278,0,31,0,
            31,138,0,165,0,133,0,159,3,0
        };
    };
    public final static char scopeRhs[] = ScopeRhs.scopeRhs;
    @Override
    public final int scopeRhs(int index) { return scopeRhs[index]; }

    public interface ScopeState {
        public final static char scopeState[] = {0,
            2721,1967,0,2438,1974,1194,0,1326,640,0,
            4993,6320,6287,4751,0,2510,1533,1572,802,0,
            3481,4759,0,5371,5309,5211,5109,5047,4985,4923,
            4861,4744,4579,4517,4894,0,1047,871,0,1195,
            0,6230,5171,0,3477,3883,3385,0,2061,927,
            0,5371,5309,2123,1991,5211,5109,5047,4985,4923,
            4861,1859,4744,4579,4517,1665,1595,0,1443,1375,
            0,3344,3446,3636,3545,3918,3851,3725,3297,2834,
            934,2204,2138,2072,2006,1940,1874,1808,1742,1676,
            1610,1544,841,770,677,0,6262,6246,0,626,
            0,2944,2862,1848,1189,4805,4316,4668,4299,3393,
            4530,3945,3082,0,3327,760,4805,5056,4521,4316,
            3376,3273,3990,1039,3163,4469,3831,1473,3752,0,
            6064,6028,5905,5913,5404,5825,5379,5286,5400,5300,
            5180,5230,4612,5076,3771,5014,4956,4952,673,765,
            4869,4752,4550,4027,0,4805,4003,4469,3831,652,
            4668,5198,1904,744,4299,3990,3945,1574,1772,3752,
            0,4003,652,0,2359,2312,2547,6064,6028,1390,
            2500,2453,2406,2260,1259,5905,5913,5217,5404,2192,
            5825,5379,5286,5400,973,5300,1840,5180,3089,1437,
            5230,4612,5076,3771,1341,5014,4956,964,3187,4952,
            2782,673,765,4869,4752,4550,811,4027,5992,4351,
            2864,2234,1199,907,2037,4668,5198,1904,744,4805,
            2168,2102,4299,1047,871,3990,3945,4003,1574,4469,
            3831,1772,3752,652,5829,2834,5784,4324,5761,3407,
            3600,3508,3776,3690,4272,4245,4218,4191,3958,1264,
            934,3344,2204,2138,2072,2006,1940,1874,1808,1742,
            1676,1610,1544,3446,3636,3545,3918,3851,3725,4490,
            4423,4116,4089,1115,5484,5460,4833,4708,4681,5738,
            5715,5692,3297,5669,5646,5623,5600,5577,5554,5531,
            5508,841,770,677,2947,3234,2900,3192,3135,1395,
            1348,2787,3093,3036,2994,1299,2740,2693,2646,2599,
            2552,2505,2458,2411,2364,2317,2270,598,1217,1488,
            1445,1068,1000,1150,0,6230,5171,598,5992,4351,
            0,6262,6246,6180,5961,5885,5873,6168,6109,6086,
            6027,5807,5371,5309,5211,5109,5047,4985,4923,4861,
            4744,4579,4517,0,6262,6246,6180,5961,5885,5873,
            6168,6109,6086,6027,5807,0
        };
    };
    public final static char scopeState[] = ScopeState.scopeState;
    @Override
    public final int scopeState(int index) { return scopeState[index]; }

    public interface InSymb {
        public final static char inSymb[] = {0,
            0,313,62,64,127,171,214,57,27,59,
            240,59,292,3,255,256,236,257,235,258,
            55,287,259,124,10,126,294,127,3,4,
            132,131,8,6,124,126,195,57,54,38,
            262,241,123,126,126,38,164,327,288,322,
            288,54,126,189,166,165,74,127,286,200,
            195,127,265,293,220,126,181,215,54,54,
            174,61,3,66,67,124,123,189,166,3,
            54,65,127,164,164,262,70,189,189,152,
            127,166,245,125,124,126,123,164,126,127,
            166,57,4,127,295,71,61,220,126,3,
            70,68,166,7,5,127,127,127,61,61,
            197,127,127,127,127,164,126,241,128,326,
            126,169,237,59,57,62,171,329,125,124,
            246,246,189,164,127,189,271,127,251,50,
            42,45,47,43,10,135,126,46,40,6,
            35,34,5,7,37,36,140,145,147,146,
            3,167,148,175,172,183,182,184,60,185,
            274,197,278,197,295,164,307,126,308,226,
            3,148,155,153,157,156,160,158,162,166,
            150,127,164,270,162,181,181,271,271,220,
            242,243,149,244,309,57,10,41,238,238,
            127,189,166,127,246,246,127,127,197,127,
            290,123,291,255,256,257,258,336,259,10,
            127,3,223,222,3,54,54,54,54,126,
            3,66,67,166,3,125,117,119,3,61,
            91,98,35,34,100,99,5,198,159,174,
            127,167,90,89,54,86,87,7,93,92,
            95,94,96,112,111,110,109,108,107,106,
            105,104,103,70,102,101,68,4,296,127,
            68,189,3,93,92,90,89,65,54,94,
            7,96,95,102,101,285,127,164,112,111,
            110,109,108,107,106,105,104,103,70,5,
            127,152,70,231,215,3,127,68,68,65,
            54,245,245,238,241,197,328,71,303,215,
            124,127,127,71,290,289,70,68,126,220,
            231,127,3,198,159,198,198,198,198,166,
            227,61,314,3,198,57,126,57,227,159,
            146,146,145,145,145,152,135,125,124,10,
            126,65,148,148,148,147,147,172,167,167,
            182,175,183,159,184,127,318,79,77,1,
            159,9,85,83,81,80,75,82,84,78,
            76,59,74,227,153,153,148,148,148,148,
            156,155,158,157,159,160,68,127,181,173,
            127,70,70,127,220,127,70,70,128,68,
            71,70,331,237,22,126,289,166,242,127,
            65,65,65,65,197,276,216,3,315,174,
            150,126,189,166,126,166,148,71,297,113,
            9,71,226,71,3,3,3,204,3,123,
            159,123,188,71,325,127,229,309,68,126,
            22,332,189,197,152,242,3,3,3,3,
            125,124,198,127,127,228,6,57,166,57,
            3,71,239,174,239,320,149,75,239,127,
            203,68,127,65,189,126,126,127,152,159,
            159,159,159,3,3,152,280,283,61,190,
            4,123,125,197,97,337,174,152,215,152,
            319,127,3,152,297,203,9,60,41,189,
            189,229,127,227,227,127,3,61,159,4,
            125,152,152,127,70,204,161,286,159,3,
            245,127,229,280,227,226,121,317,152,338,
            70,127,152,68
        };
    };
    public final static char inSymb[] = InSymb.inSymb;
    @Override
    public final int inSymb(int index) { return inSymb[index]; }

    public interface Name {
        public final static String name[] = {
            "",
            "[",
            "(",
            ".",
            ".*",
            "->",
            "->*",
            "++",
            "--",
            "&",
            "*",
            "+",
            "-",
            "~",
            "!",
            "/",
            "%",
            ">>",
            "<<",
            "<",
            ">",
            "<=",
            ">=",
            "==",
            "!=",
            "^",
            "|",
            "&&",
            "||",
            "?",
            ":",
            "::",
            "...",
            "=",
            "*=",
            "/=",
            "%=",
            "+=",
            "-=",
            ">>=",
            "<<=",
            "&=",
            "^=",
            "|=",
            ",",
            "$empty",
            "asm",
            "auto",
            "bool",
            "break",
            "case",
            "catch",
            "char",
            "class",
            "const",
            "const_cast",
            "continue",
            "default",
            "delete",
            "do",
            "double",
            "dynamic_cast",
            "else",
            "enum",
            "explicit",
            "export",
            "extern",
            "false",
            "float",
            "for",
            "friend",
            "goto",
            "if",
            "inline",
            "int",
            "long",
            "mutable",
            "namespace",
            "new",
            "operator",
            "private",
            "protected",
            "public",
            "register",
            "reinterpret_cast",
            "return",
            "short",
            "signed",
            "sizeof",
            "static",
            "static_cast",
            "struct",
            "switch",
            "template",
            "this",
            "throw",
            "try",
            "true",
            "typedef",
            "typeid",
            "typename",
            "union",
            "unsigned",
            "using",
            "virtual",
            "void",
            "volatile",
            "wchar_t",
            "while",
            "integer",
            "floating",
            "charconst",
            "stringlit",
            "identifier",
            "Completion",
            "EndOfCompletion",
            "Invalid",
            "RightBracket",
            "RightParen",
            "RightBrace",
            "SemiColon",
            "LeftBrace",
            "ERROR_TOKEN",
            "EOF_TOKEN",
            "]",
            ")",
            "}",
            ";",
            "{",
            "identifier_token",
            "expression",
            "id_expression",
            "qualified_or_unqualified_name",
            "unqualified_id_name",
            "identifier_name",
            "template_id_name",
            "nested_name_specifier",
            "class_or_namespace_name",
            "nested_name_specifier_with_tem" +
            "plate",
            "class_or_namespace_name_with_t" +
            "emplate",
            "class_name",
            "postfix_expression",
            "simple_type_specifier",
            "pseudo_destructor_name",
            "type_id",
            "type_name",
            "destructor_type_name",
            "unary_expression",
            "cast_expression",
            "new_type_id",
            "expression_list",
            "type_specifier_seq",
            "new_declarator",
            "new_pointer_operators",
            "ptr_operator",
            "new_array_expressions",
            "constant_expression",
            "pm_expression",
            "multiplicative_expression",
            "additive_expression",
            "shift_expression",
            "relational_expression",
            "equality_expression",
            "and_expression",
            "exclusive_or_expression",
            "inclusive_or_expression",
            "logical_and_expression",
            "logical_or_expression",
            "assignment_expression",
            "relational_expression_inTempla" +
            "te",
            "equality_expression_inTemplate",
            "and_expression_inTemplate",
            "exclusive_or_expression_inTemp" +
            "late",
            "inclusive_or_expression_inTemp" +
            "late",
            "logical_and_expression_inTempl" +
            "ate",
            "logical_or_expression_inTempla" +
            "te",
            "assignment_expression_inTempla" +
            "te",
            "expression_list_actual",
            "statement",
            "compound_statement",
            "statement_seq",
            "condition",
            "declarator",
            "for_init_statement",
            "function_definition",
            "declaration",
            "declaration_seq",
            "declaration_specifiers",
            "simple_declaration_specifiers",
            "class_declaration_specifiers",
            "elaborated_declaration_specifi" +
            "ers",
            "enum_declaration_specifiers",
            "type_name_declaration_specifie" +
            "rs",
            "no_type_declaration_specifier",
            "cv_qualifier",
            "no_type_declaration_specifiers",
            "class_specifier",
            "elaborated_type_specifier",
            "enum_specifier",
            "type_name_specifier",
            "class_keyword",
            "enumerator_list",
            "enumerator_definition",
            "namespace_name",
            "init_declarator_list",
            "init_declarator_complete",
            "complete_declarator",
            "initializer",
            "direct_declarator",
            "ptr_operator_seq",
            "function_declarator",
            "basic_direct_declarator",
            "array_direct_declarator",
            "array_modifier",
            "abstract_declarator",
            "direct_abstract_declarator",
            "basic_direct_abstract_declarat" +
            "or",
            "array_direct_abstract_declarat" +
            "or",
            "parameter_declaration_list",
            "parameter_declaration",
            "parameter_init_declarator",
            "parameter_initializer",
            "function_body",
            "handler_seq",
            "initializer_clause",
            "initializer_seq",
            "class_head",
            "access_specifier_keyword",
            "member_declaration",
            "member_declarator_list",
            "member_declaration_list",
            "member_declarator_complete",
            "constant_initializer",
            "bit_field_declarator",
            "base_specifier_list",
            "base_specifier",
            "conversion_function_id",
            "conversion_type_id",
            "conversion_declarator",
            "mem_initializer_list",
            "mem_initializer",
            "mem_initializer_name",
            "operator_id_name",
            "overloadable_operator",
            "template_parameter_list",
            "template_parameter",
            "template_argument_list",
            "template_argument",
            "type_name_specifier_inTemplate",
            "type_name_declaration_specifie" +
            "rs_inTemplate",
            "type_specifier_seq_inTemplate",
            "handler",
            "exception_declaration",
            "type_id_list"
        };
    };
    public final static String name[] = Name.name;
    public final String name(int index) { return name[index]; }

    public final static int
           ERROR_SYMBOL      = 63,
           SCOPE_UBOUND      = 121,
           SCOPE_SIZE        = 122,
           MAX_NAME_LENGTH   = 43;

    public final int getErrorSymbol() { return ERROR_SYMBOL; }
    public final int getScopeUbound() { return SCOPE_UBOUND; }
    public final int getScopeSize() { return SCOPE_SIZE; }
    public final int getMaxNameLength() { return MAX_NAME_LENGTH; }

    public final static int
           NUM_STATES        = 604,
           NT_OFFSET         = 122,
           LA_STATE_OFFSET   = 7511,
           MAX_LA            = 2147483647,
           NUM_RULES         = 597,
           NUM_NONTERMINALS  = 224,
           NUM_SYMBOLS       = 346,
           SEGMENT_SIZE      = 8192,
           START_STATE       = 5807,
           IDENTIFIER_SYMBOL = 0,
           EOFT_SYMBOL       = 120,
           EOLT_SYMBOL       = 120,
           ACCEPT_ACTION     = 6474,
           ERROR_ACTION      = 6914;

    public final static boolean BACKTRACK = true;

    public final int getNumStates() { return NUM_STATES; }
    public final int getNtOffset() { return NT_OFFSET; }
    public final int getLaStateOffset() { return LA_STATE_OFFSET; }
    public final int getMaxLa() { return MAX_LA; }
    public final int getNumRules() { return NUM_RULES; }
    public final int getNumNonterminals() { return NUM_NONTERMINALS; }
    public final int getNumSymbols() { return NUM_SYMBOLS; }
    public final int getSegmentSize() { return SEGMENT_SIZE; }
    public final int getStartState() { return START_STATE; }
    public final int getStartSymbol() { return lhs[0]; }
    public final int getIdentifierSymbol() { return IDENTIFIER_SYMBOL; }
    public final int getEoftSymbol() { return EOFT_SYMBOL; }
    public final int getEoltSymbol() { return EOLT_SYMBOL; }
    public final int getAcceptAction() { return ACCEPT_ACTION; }
    public final int getErrorAction() { return ERROR_ACTION; }
    public final boolean isValidForParser() { return isValidForParser; }
    public final boolean getBacktrack() { return BACKTRACK; }

    public final int originalState(int state) {
        return -baseCheck[state];
    }
    public final int asi(int state) {
        return asb[originalState(state)];
    }
    public final int nasi(int state) {
        return nasb[originalState(state)];
    }
    public final int inSymbol(int state) {
        return inSymb[originalState(state)];
    }

    public final int ntAction(int state, int sym) {
        return baseAction[state + sym];
    }

    public final int tAction(int state, int sym) {
        int i = baseAction[state],
            k = i + sym;
        return termAction[termCheck[k] == sym ? k : i];
    }
    public final int lookAhead(int la_state, int sym) {
        int k = la_state + sym;
        return termAction[termCheck[k] == sym ? k : la_state];
    }
}
